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”]}