Javascript Browserify Transfile所需或导入的包到es2015

Javascript Browserify Transfile所需或导入的包到es2015,javascript,npm,gulp,browserify,babeljs,Javascript,Npm,Gulp,Browserify,Babeljs,我们有一个利用进口的项目,需要通过NPM包含各种第三方软件包。其中一些软件包是用es6编写的,我们需要将它们传输到es5/es2015,以便在IE11等浏览器中工作,因为有些软件包使用=>箭头语法实现函数 我们自己的代码使用arrow语法,但它正通过browserify转换为更普遍支持的语法。问题是,我们导入的包(如camelcase密钥)无法传输,而是包含在原始格式中 这对于像Chrome和Edge这样的浏览器来说很好,但是对于IE来说,它会中断,因为不支持这种语法 这是我们当前的packag

我们有一个利用进口的项目,需要通过NPM包含各种第三方软件包。其中一些软件包是用es6编写的,我们需要将它们传输到es5/es2015,以便在IE11等浏览器中工作,因为有些软件包使用
=>
箭头语法实现函数

我们自己的代码使用arrow语法,但它正通过browserify转换为更普遍支持的语法。问题是,我们导入的包(如
camelcase密钥
)无法传输,而是包含在原始格式中

这对于像Chrome和Edge这样的浏览器来说很好,但是对于IE来说,它会中断,因为不支持这种语法

这是我们当前的package.json和gulpfile.js。如果你需要进一步的信息,请告诉我

package.json

{
“名称”:“应用程序”,
“私人”:没错,
“依赖项”:{
“角度”:“^1.6.4”,
“角度自动完成”:“^1.4.3”,
“角度输入掩码”:“^4.1.0”,
“角力矩”:“^1.0.1”,
“角度路线”:“^1.6.4”,
“角度消毒”:“^1.6.6”,
“角带”:“^2.3.12”,
“animate.css”:“^3.5.2”,
“引导”:“^3.3.7”,
“引导式sass”:“^3.3.7”,
“引导选择”:“^1.12.4”,
“bugsnag angular”:“^1.0.1”,
“bugsnag js”:“^4.0.3”,
“camelcase密钥”:“^4.2.0”,
“日期假日”:“^1.2.1”,
“字体真棒”:“^4.7.0”,
“时刻”:“^2.19.3”,
“ng文件上载”:“^12.2.13”,
“ng存储”:“^0.3.2”,
“papaparse”:“^4.3.7”,
“蛇壳钥匙”:“^1.1.0”,
“summernote”:“^0.8.9”,
“sweetalert”:“^2.0.8”,
“uuid”:“^3.2.1”
},
“依赖性”:{
“巴别塔核心”:“^6.26.0”,
“babel-plugin-transform-es2015-classes”:“^6.24.1”,
“巴别塔polyfill”:“^6.26.0”,
“babel-preset-es2015”:“^6.24.1”,
“babelify”:“^8.0.0”,
“浏览化”:“^14.5.0”,
“吞咽”:“^3.9.1”,
“吞咽角度模板缓存”:“^2.0.0”,
“吞咽缓存半身像”:“^1.1.0”,
“咕噜咕噜”:“^2.6.1”,
“如果喝了就大口喝”:“^2.0.2”,
“大口rm”:“^1.0.2”,
“大口大口大口喝”:“^3.1.0”,
“狼吞虎咽”:“^2.1.2”,
“乙烯基缓冲液”:“^1.0.0”,
“乙烯基源流”:“^1.1.0”,
“码”:“^8.0.1”
},
“浏览化”:{
“转变”:[
[
“宝贝”,
{
“预设”:[
“es2015”
],
“插件”:[
“transform-es2015-Class”
]
}
]
]
}

}
我以前在Webpack中做过这件事,在Webpack中使用babel loader非常简单

我担心browserify本身无法传输所有ES6语法。。。但是有人为了这些目的创造了

使用babelify,您可以执行以下类似操作:

gulp.task('js', function() {
return browserify({
    entries: ['./app/app.js'],
    paths: ['./node_modules', './app/']
})
    .transform(babelify, {
        global: true,
        presets: ["es2015"]
     })
    .bundle()
    .pipe(source('app.js'))
    .pipe(buffer())
    .pipe(gulpif(argv.production, uglify()))
    .pipe(gulp.dest('./public/js'));
});
我们需要使用
global
标志,以强制browserify的转换通过node_模块。(如果我们只想转换少数节点_模块,还有其他选项,例如
。(您也可以添加更多插件和预设,但这取决于您和您的配置,以便使用babel进行转换。)