Npm 吞咽:babelify运行无误,但不';t转换我的节点模块

Npm 吞咽:babelify运行无误,但不';t转换我的节点模块,npm,gulp,babeljs,uglifyjs,Npm,Gulp,Babeljs,Uglifyjs,我是: 与browserify捆绑销售 使用巴别塔将ES6转换为ES5 使用uglifyjs缩小ES5 以前有效的。然而,最近我从uglifyjs收到错误,抱怨ES6语法,好像babelify实际上没有运行: gulp.task('js', function() { // Browserify/bundle the JS. browserify({ entries: './public/js/src/index.js', insertGlob

我是:

  • 与browserify捆绑销售

  • 使用巴别塔将ES6转换为ES5

  • 使用uglifyjs缩小ES5

以前有效的。然而,最近我从
uglifyjs
收到错误,抱怨ES6语法,好像babelify实际上没有运行:

gulp.task('js', function() {

    // Browserify/bundle the JS.
    browserify({
        entries: './public/js/src/index.js',
        insertGlobals : true,
        fullPaths: true, // For discify
        debug: ! isProduction
    }).transform(babelify)
        .bundle()
        .pipe(source('index.js'))
        .pipe(buffer())
        .pipe(uglify())
        .pipe(gulp.dest('./public/js/dist'))

});
为什么不
转换(babelify)
转换代码?


请给出实际答案,而不是剪切粘贴的gulpfiles。

问题是使用npm模块:。因此,如果模块是ES6,当uglify运行时,它们仍将在ES6中

升级babel并使用已修复的问题:

gulp.task('js', function() {

    browserify({
        entries: './public/js/src/index.js',
        insertGlobals : true,
        fullPaths: true, // For discify
        debug: ! isProduction
    }).transform(babelify, {
            presets: ['es2015'],
            compact: false,
            global: true
        })
        .bundle()
        .pipe(source('index.js'))
        .pipe(buffer())
        .pipe(uglify())
        .pipe(gulp.dest('./public/js/dist'))
})
另一个选项是将其放入私有模块中的
package.json
。注意:语法很奇怪,使用数组而不是对象将项目与其选项匹配:

{
  "browserify": {
    "transform": [
       [
         "babelify", 
          { "presets": ["es2015"] }
       ]
     ]
  }
}

有关更多信息,请参阅。

能否粘贴browserify&babelify版本?我只是在我的机器上运行了你的代码片段,一切正常。而且uglify有时会抱怨语法错误,因为,你知道,实际的语法错误,不一定不受支持ES6@LimH. 是的,但是我在没有丑陋的情况下运行了browserify,它正在生成ES5@LimH. 我已经升级了babelify,看起来现在可以用了。谢谢你的帮助,抱歉太迟了!不用担心,browserify transformers和gulp不是最好的朋友。如果你感兴趣的话,我会在这里大声抱怨的。我的插件还不是很可靠,但希望会很可靠。另一个选择是将
.babelrc
添加到项目根目录中,使用
{“预设”:[“es2015”]}