转换器(如babel)何时将ecmascript6代码更改为ecmascript5代码?

时间:2017-01-18 09:26:34

标签: ecmascript-6 babeljs ecmascript-5 transpiler

我正在与babel,maven,angular 1.5es6合作。遇到了转发器的概念,将es6内部编写的代码内部转换为es5代码,以实现浏览器的向后兼容性。 想知道转换器(如babel)何时将ecmascript6代码更改为ecmascript5代码?

2 个答案:

答案 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。