1

我正在使用 babel、mavenangular 1.5es6. 遇到了转译器的概念,将es6内部编写的es5代码转换为浏览器向后兼容的代码。想知道转译器(如babel)何时将ecmascript6代码更改为ecmascript5代码?

4

2 回答 2

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 watch,以便您的代码在保存后立即转译:

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 请求上转换代码,但这将是非常低效的。所以我肯定会建议只转译一次并保存转译后的文件,以便所有客户端都可以使用它们。

于 2017-01-18T09:53:34.377 回答
0

当您在服务器上编译代码时。它从 es6 转换为 es5。

于 2017-01-24T19:20:37.010 回答