2015-02-03 3 views
6

내가 전에 내 일부 작업에 gulpfile.js 그리고 내가꿀꺽 후크 '코르도바 빌드 XXX'

cordova build은 내가 JS에 간단한 console.log("a")으로 hooks 폴더의 내부 before_build 폴더를 생성 할 하나의 작업을 실행하려면 파일.

예를 들어 cordova build android을 실행하면 'console' is undefined이라고 표시되며 Javascript를 실행하려면 다른 작업을해야합니까? 나는 더 많은 정보를 찾을 수 없었다.

감사합니다.

는 편집 : 여기, gulp is not defined

답변

8

내부 파일입니다 당신은 파일 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'); 
+0

gordon.start()는 코르도바 훅으로 동 기적으로 완료됩니까? –

+0

gulp.start()가 더 이상 사용되지 않으며 제거 예정임을 알게되었습니다 : https://github.com/gulpjs/gulp/issues/505 .. 1 년 전 이었지만! –

+0

최신 Cordova에서 더 이상 후크 폴더를 사용하지 않는 것이 좋습니다. 곧 지원 중단 될 예정입니다. @David Douglas가 제안한대로 JS 메서드를 사용하십시오 – wajatimur

3

마지막으로 내가 명령을 실행할 수

나는 나의의 .js 파일의 상단과 console.log 작품에 #!/usr/bin/env node을 추가했지만 지금은 gulp myTask을하고 싶은 나에게 던지고 내의 .js가 hooks/before_build

#!/usr/bin/env node 
var sys = require('sys') 
var exec = require('child_process').exec; 
function puts(error, stdout, stderr) { sys.puts(stdout) } 
exec("gulp", puts); 
+0

하지 다른 노드 스크립트 (꿀꺽)를 실행하는 노드에서 새로운 프로세스를 만들 이후 최고의 솔루션입니다. – AlexStack

+0

@AlexStack 그렇다면 더 나은 해결책은 무엇이라고 생각하십니까? –

+0

나는 가장 많은 표를 얻은 해결책을 좋아합니다. – AlexStack

4

'gulpfile.js'파일을 사용하려면 __dirname을 사용해야했습니다.

#!/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; 
} 

NB : 'gulpfile.js'와 'hook.js'는 같은 디렉토리에 있습니다. 당신은 코르도바의 config.xml에 파일에 JS 파일 후크 사용자 지정 경로를 설정할 수 있습니다

<hook type="before_build" src="app/hook.js" /> 
+0

gordfile hooks 스크립트가 루트 프로젝트 디렉토리에서 작동하므로 gulpfile.js가 하위 디렉토리에서 작동하는 경우 파일 경로 문제가 발생할 수 있습니다. –