2016-08-28 85 views
1

我在我的gulp构建脚本中有gulp-babel任务,并且它运行良好,直到我删除了node_modules目录并再次运行npm install。 它返回gulp-babel在删除node_modules后得到语法错误并再次运行npm install

SyntaxError: j.js: Unexpected token (790:10) 

和错误日志指出错误标记为:

789 |  data, 
> 790 |  async = true, 
     |   ^
    791 |  cache = 'no-cache', 
    792 |  method = 'GET', 
    793 |  headers = {}, 

如果我编译j.js直接CLI babel j.js,不会得到错误信息,并返回编译后的代码如预期。

我一饮而尽任务代码:

const gulp = require('gulp'); 
const { babel } = require('gulp-load-plugins')(); 

gulp.task('babel',() => { 
    return gulp.src([ 
     '.tmp/j.js' 
    ]).pipe(babel()).pipe(gulp.dest('.tmp')); 
}); 

我.babelrc:

{ 
    "presets" : [ "es2016" ], 
    "plugins" : [ 
     "transform-es2015-arrow-functions", 
     "transform-es2015-object-super", 
     "transform-es2015-parameters", 
     "transform-object-assign", 
     "transform-es2015-block-scoping", 
     "transform-es2015-shorthand-properties", 
     "transform-es2015-block-scoped-functions", 
     "transform-es2015-for-of", 
     "transform-es2015-destructuring", 
     [ "transform-es2015-classes", { "loose" : true } ], 
     [ "transform-es2015-spread", { "loose" : true } ], 
     [ "transform-es2015-template-literals", { "loose" : true } ] 
    ] 
} 

我NPM的依赖关系:

"devDependencies": { 
    "babel-cli": "^6.14.0", 
    "gulp-babel": "^6.1.2", 
    "babel-plugin-transform-es2015-arrow-functions": "^6.8.0", 
    "babel-plugin-transform-es2015-block-scoped-functions": "^6.8.0", 
    "babel-plugin-transform-es2015-block-scoping": "^6.10.1", 
    "babel-plugin-transform-es2015-classes": "^6.9.0", 
    "babel-plugin-transform-es2015-destructuring": "^6.9.0", 
    "babel-plugin-transform-es2015-for-of": "^6.8.0", 
    "babel-plugin-transform-es2015-object-super": "^6.8.0", 
    "babel-plugin-transform-es2015-parameters": "^6.11.4", 
    "babel-plugin-transform-es2015-shorthand-properties": "^6.8.0", 
    "babel-plugin-transform-es2015-spread": "^6.8.0", 
    "babel-plugin-transform-es2015-template-literals": "^6.8.0", 
    "babel-plugin-transform-object-assign": "^6.8.0", 
    "babel-preset-es2016": "^6.11.3", 
    "colors": "^1.1.2", 
    "del": "^2.2.2", 
    "gulp": "^3.9.1", 
    "gulp-concat": "^2.6.0", 
    "gulp-file-include": "^0.14.0", 
    "gulp-load-plugins": "^1.2.4", 
    "gulp-uglify": "^2.0.0", 
    "gulp-watch": "^4.3.9", 
    "require-dir": "^0.3.0", 
    "run-sequence": "^1.2.2", 
    "uglify-js": "github:mishoo/UglifyJS2#harmony" 
    }, 

回答

0

我来了再回答我的问题。

Babeljs 6.14.0开始支持在ES7中声明的“异步函数”。单词“async”成为编译器的关键字,所以我不能使用“async”作为变量名称。

然后我改变“async = true”为“sync = false”来解决这个问题。

我向github上的Babeljs报告了一个问题。我认为这个问题已经解决了。

相关问题