generator-adaptivejs
Advanced tools
Comparing version
{ | ||
"adaptiveDefaults": { | ||
"adaptivejs": "0.1.19", | ||
"adaptivejs": "0.1.20", | ||
"connect": "2.3.4", | ||
@@ -5,0 +5,0 @@ "grunt": "0.4.2", |
104
app/index.js
'use strict'; | ||
var exec = require('child_process').exec; | ||
var fs = require('fs'); | ||
var path = require('path'); | ||
var _ = require('lodash'); | ||
var chalk = require('chalk'); | ||
var processArgs = require('minimist')(process.argv.slice(2)); | ||
var semver = require('semver'); | ||
var util = require('util'); | ||
var path = require('path'); | ||
var yeoman = require('yeoman-generator'); | ||
var chalk = require('chalk'); | ||
var fs = require('fs'); | ||
var env = process.env; | ||
var vellum = require('./libs/vellum'); | ||
@@ -14,4 +15,4 @@ var PackageDependencies = require('./libs/packageDependencies'); | ||
var npmDependencies = require('./dependencies/npmDependencies.json'); | ||
var processArgs = require('minimist')(process.argv.slice(2)); | ||
var isWindows = process.platform === 'win32'; | ||
var env = process.env; | ||
@@ -27,27 +28,15 @@ var homeDirectory; | ||
var buildZepto = function() { | ||
var that = this; | ||
var directory = process.cwd() + '/bower_components/zeptojs/'; | ||
var onComplete = function() { | ||
console.log('All finished!'); | ||
}; | ||
// Install dependencies for zepto | ||
var child = this.spawnCommand('npm', ['install'], { | ||
cwd: directory | ||
/** | ||
* Coppies the specified lib from srcDir into the vendor folder | ||
*/ | ||
var copySelectorLib = function(lib, srcDir) { | ||
['.js', '.min.js'].forEach(function(extension) { | ||
var src = path.join(srcDir, lib + extension); | ||
var dest = path.join(process.cwd(), 'vendor', lib + extension); | ||
fs.createReadStream(src).pipe(fs.createWriteStream(dest)); | ||
}); | ||
// After dependencies are installed, build zepto | ||
child.on('exit', function() { | ||
var envCopy = {}; | ||
for (var varName in env) { | ||
envCopy[varName] = env[varName]; | ||
} | ||
envCopy.MODULES = 'zepto event ajax form fx data stack selector'; | ||
that.spawnCommand('npm', | ||
['run-script', 'dist'], | ||
{ | ||
cwd: directory, | ||
env: envCopy | ||
} | ||
); | ||
}); | ||
}; | ||
@@ -59,21 +48,37 @@ var AdaptiveGenerator = module.exports = function AdaptiveGenerator(args, options, config) { | ||
var self = this; | ||
var installBower = function() { | ||
// Tests skip install step | ||
if (!options['skip-install']) { | ||
// We must bower install before building zepto) | ||
var bowerProcess = self.spawnCommand('bower', ['install', '--config.interactive=false'], { | ||
cwd: process.cwd() + '/' | ||
}); | ||
bowerProcess.on('exit', function() { | ||
if (self.selectorLibrary === 'Zepto') { | ||
var child = self.spawnCommand('grunt', ['adaptive:build-zepto'], { | ||
cwd: process.cwd() | ||
}); | ||
child.on('exit', onComplete); | ||
} | ||
else { | ||
// Earlier builds of jquery live in a different folder | ||
var jqueryPath = 'bower_components/'; | ||
jqueryPath += semver.lt(self.selectorLibVersion, '2.1.0') ? 'jquery/' : 'jquery/dist/'; | ||
copySelectorLib('jquery', jqueryPath); | ||
onComplete(); | ||
} | ||
}.bind(self)); | ||
} | ||
}; | ||
// Installs npm packages | ||
this.installDependencies({ | ||
skipInstall: options['skip-install'], | ||
bower: false | ||
bower: false, | ||
callback: installBower | ||
}); | ||
// Tests skip install step | ||
if (!options['skip-install']) { | ||
// We must bower install before building zepto) | ||
var bowerProcess = this.spawnCommand('bower', ['install', '--config.interactive=false'], { | ||
cwd: process.cwd() + '/' | ||
}); | ||
bowerProcess.on('exit', function() { | ||
if (this.selectorLibrary === 'Zepto') { | ||
buildZepto.call(this); | ||
} | ||
}.bind(this)); | ||
} | ||
}); | ||
@@ -329,2 +334,4 @@ }; | ||
var packageLookup = 'bower info ' + this.selectorLibrary; | ||
console.log('Checking available versions...'); | ||
// Lookup available bower component versions for zepto/jquery | ||
@@ -370,2 +377,3 @@ exec(packageLookup, function(error, stdout, stderr) { | ||
this.mkdir('tasks/config'); | ||
this.mkdir('vendor'); | ||
@@ -384,14 +392,8 @@ // UI script linking for home.dust | ||
this.selectorLibrary = 'Zepto'; | ||
this.selectorLibPath = 'bower_components/zeptojs/dist/zepto'; | ||
this.selectorLibPath = 'vendor/zepto'; | ||
this.directory('tasks/zepto', 'tasks/zepto'); | ||
} | ||
else { | ||
this.selectorLibrary = 'jQuery'; | ||
// As of jQuery 2.1.0 the path to the lib has changed | ||
if (this.selectorLibVersion < '2.1.0') { | ||
this.selectorLibPath = 'bower_components/jquery/jquery'; | ||
} | ||
else { | ||
this.selectorLibPath = 'bower_components/jquery/dist/jquery'; | ||
} | ||
this.selectorLibPath = 'vendor/jquery'; | ||
} | ||
@@ -398,0 +400,0 @@ |
{ | ||
"name": "generator-adaptivejs", | ||
"version": "0.1.26", | ||
"version": "0.1.27", | ||
"description": "A generator for Yeoman", | ||
@@ -29,3 +29,4 @@ "keywords": [ | ||
"chalk": "~0.4.0", | ||
"lodash": "~2.4.1" | ||
"lodash": "~2.4.1", | ||
"semver": "2.3.0" | ||
}, | ||
@@ -32,0 +33,0 @@ "devDependencies": { |
Sorry, the diff of this file is not supported yet
168361
0.31%1351
0.15%9
12.5%+ Added
+ Added