转译器(如 babel)何时将 ecmascript6 代码更改为 ecmascript5 代码?
When does a transpiler (like babel) changes ecmascript6 code into ecmascript5 code?
我正在使用 babel、maven、angular 1.5
和 es6
。遇到了转译器的概念,将 es6
中编写的代码在内部转换为 es5
代码以实现浏览器的向后兼容。
想知道转译器(如 babel
)何时将 ecmascript6
代码更改为 ecmascript5
代码?
我不确定我是否理解你的问题。如果你像这样安装 babel:
npm install -g babel-cli
您可以通过 运行ning:
转译您的代码
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 请求上转换代码当然是可能的,但那将是非常低效的。所以我肯定会建议只转译一次并保存转译后的文件,以便所有客户端都可以使用它们。
当您在服务器上编译代码时。它从 es6 转换为 es5。
我正在使用 babel、maven、angular 1.5
和 es6
。遇到了转译器的概念,将 es6
中编写的代码在内部转换为 es5
代码以实现浏览器的向后兼容。
想知道转译器(如 babel
)何时将 ecmascript6
代码更改为 ecmascript5
代码?
我不确定我是否理解你的问题。如果你像这样安装 babel:
npm install -g babel-cli
您可以通过 运行ning:
转译您的代码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 请求上转换代码当然是可能的,但那将是非常低效的。所以我肯定会建议只转译一次并保存转译后的文件,以便所有客户端都可以使用它们。
当您在服务器上编译代码时。它从 es6 转换为 es5。