在'cordova build xxx'之前堵了一口气

Mat*_*cci 6 cordova gulp cordova-cli

我有gulpfile.js一些任务,我想在执行任务时执行一项任务cordova build

我在js文件中创建了一个简单before_buildhooks文件夹console.log("a").

但是,当我运行时,cordova build android它说'console' is undefined,我必须做一些其他的运行Javascript?我找不到更多信息.

谢谢!

编辑:

我添加#!/usr/bin/env node了我的.js文件和console.log 作品的顶部,但现在我想做,gulp myTask并向我投掷gulp is not defined

JBC*_*BCP 8

通过将此代码粘贴到文件中,您可以在不离开Node的情况下运行它before_build/010_compile_css.js:

#!/usr/bin/env node

var gulp = require('gulp');
var path  = require('path');

var rootdir = process.argv[2];
var gulpfile = path.join(rootdir, 'gulpfile.js');

process.stdout.write('Compiling SCSS');

require(gulpfile);

//interaction
gulp.start('scss');
Run Code Online (Sandbox Code Playgroud)


Dav*_*las 5

我发现我必须使用__dirname'gulpfile.js'文件.

#!/usr/bin/env node

module.exports = function(context) {
  var Q = context.requireCordovaModule('q');
  var deferral = new Q.defer();

  var path = require('path'),
      gulp = require('gulp'),
      gulpfile = path.join(__dirname, 'gulpfile');
  require(gulpfile);

  gulp.start('myTask').once('task_stop', function(){
      console.log('myTask done');
      deferral.resolve();
  });

  return deferral.promise;
}
Run Code Online (Sandbox Code Playgroud)

注意:'gulpfile.js'和'hook.js'在这里是同一个目录.您可以在Cordova的config.xml文件中设置钩子js文件的自定义路径:

<hook type="before_build" src="app/hook.js" />
Run Code Online (Sandbox Code Playgroud)