2016-08-22 55 views
0

我想在我計劃在ES6中編寫的新項目中使用Google Closure Compiler。我只是試着按照https://www.npmjs.com/package/google-closure-compiler。 我做了npm安裝google-closure-compiler之後,我嘗試了Grunt或Gulp方法,但都沒有爲我工作。我只是有一個真正簡單的js hello世界類型的文件來測試工作流程。使用Grunt或Gulp進行Closure編譯器工作

對於步兵我Gruntfile.js:

module.exports = function(grunt) { 

    require('google-closure-compiler').grunt(grunt); 

    grunt.initConfig({ 
    'closure-compiler': { 
    my_target: { 
     files: { 
     'dest/output.min.js': ['src/js/**/*.js'] 
     }, 
     options: { 
     compilation_level: 'SIMPLE', 
     language_in: 'ECMASCRIPT6_STRICT', 
     language_out: 'ECMASCRIPT5_STRICT', 
     create_source_map: 'dest/output.min.js.map', 
     output_wrapper: '(function(){\n%output%\n}).call(this)\n//# sourceMappingURL=output.min.js.map' 
     } 
    } 
    } 
}); 

當我運行 「咕嚕」 我得到:

警告:沒有定義無極使用--force繼續。 由於警告而中止。

對於咕嘟咕嘟,我也跟着教程,和我的gulpfile.js是這樣的:

var gulp = require('gulp'), 
    gutil = require('gulp-util'); 

var Promise = require('es6-promise').Promise; 
var closureCompiler = require('google-closure-compiler').gulp(); 

gulp.task('default', function() { 
    return gulp.src('./src/js/**/*.js', {base: './'}) 
     .pipe(closureCompiler({ 
      compilation_level: 'SIMPLE', 
      warning_level: 'VERBOSE', 
      language_in: 'ECMASCRIPT6_STRICT', 
      language_out: 'ECMASCRIPT5_STRICT', 
      output_wrapper: '(function(){\n%output%\n}).call(this)', 
      js_output_file: 'output.min.js' 
     })).on('error', gutil.log) 
     .pipe(gulp.dest('./dist/js')); 
}); 

當我運行一飲而盡intially下面我跑進沒有定義無極錯誤以及,但在本教程至少我能添加ES6承諾量線來解決最初的問題,但後來我還是得到:

events.js:72 
     throw er; // Unhandled 'error' event 
      ^
Error: not implemented 
    at Readable._read (_stream_readable.js:465:22) 
    at Readable.read (_stream_readable.js:341:10) 
    at Readable.on (_stream_readable.js:720:14) 
    at Readable.pipe (_stream_readable.js:575:10) 
    at Transform.CompilationStream._flush (/<my project directory>/node_modules/google-closure-compiler/lib/gulp/index.js:213:17) 
    at Transform.<anonymous> (_stream_transform.js:130:12) 
    at Transform.g (events.js:180:16) 
    at Transform.emit (events.js:117:20) 
    at finishMaybe (_stream_writable.js:360:12) 
    at endWritable (_stream_writable.js:367:3) 

任何幫助就使得無論是步兵還是咕嘟咕嘟工作?

回答

0

升級您的NodeJS版本。插件假定了原生的Promises支持。它的工作原理與NodeJS 0.12相同。

+0

謝謝@ chad-killingsworth!更新我的NodeJS的確有竅門。之後,我測試了我的ES6文件。雖然我的選項包括language_in:'ECMASCRIPT6_STRICT',language_out:'ECMASCRIPT5_STRICT', 輸出似乎沒有生成我的ES6,但我注意到在傳遞給Closure編譯器的相同設置中,Gulp正確地將我的代碼生成到ES5中正確構造。 –

+0

如果這能解決原來的問題,那麼你能接受這個答案嗎?這是左側的複選標記。您需要將此下一個問題作爲單獨的問題發佈。 –

+0

確定檢查標記。 –

相關問題