我正在与babel,maven,angular 1.5
和es6
合作。遇到了转发器的概念,将es6
内部编写的代码内部转换为es5
代码,以实现浏览器的向后兼容性。
想知道转换器(如babel
)何时将ecmascript6
代码更改为ecmascript5
代码?
答案 0 :(得分:3)
我不确定我是否理解你的问题。如果你像这样安装babel:
npm install -g babel-cli
您可以通过运行:
来转换代码babel script.js --out-file script-compiled.js
如果你像这样使用gulp:
var gulp = require("gulp");
var babel = require("gulp-babel");
gulp.task("default", function () {
return gulp.src("src/js/*.js")
.pipe(babel())
.pipe(gulp.dest("dist/js"));
});
它会转换您的代码并将其保存到dist/js
。
如果您需要,还可以定义一个gulp手表,以便在您保存代码后立即编译代码:
var paths = {
babel: './somedir'
}
gulp.task('babel', function() {
return gulp.src(paths.babel)
.pipe(babel())
.pipe(gulp.dest('./'))
})
gulp.task('watch', function() {
gulp.watch(paths.babel, ['babel'])
})
如果您运行gulp watch任务,它将自动等待文件更改,然后立即进行转换。
编辑(在澄清问题之后):
一般来说,您应该在发送任何请求之前转换您的javascript文件。肯定可以在每个http请求上转换代码,但这将是非常低效的。所以我肯定会建议只转换一次并保存已转换的文件,以便所有客户端都可以使用它们。
答案 1 :(得分:0)
在服务器上编译代码时。它从es6转换为es5。