我有一个香草Cordova应用程序。但它是一个Cordova应用程序的事实应该无关紧要,只需将其视为一个香草网站。现在大多数脚本都是通过<script>
标签加载的。最近添加了env
预设的gulp和Babel转换。我想开始迁移到Systemjs支持的ES2015模块。但是,因为有很多遗留代码(有些部分我不知道它在做什么,很多全局变量等),我想逐个文件地迁移到ES2015模块。有没有办法要求Babel不要为某些文件进行模块转换(但最好是为其他ES2015功能进行转换)?如果它不会混淆没有任何export
语句的文件,那将会非常有用。
答案 0 :(得分:0)
查看此处的ignore
或only
babel.rc选项:https://babeljs.io/docs/usage/api/#options
答案 1 :(得分:0)
您可以将babel构建任务分为两部分。第一遍编译所有文件而不转换模块,第二遍仅将模块转换应用于您手动更新的文件列表。
以下是gulp和gulp-filter的看法:
const gulp = require("gulp");
const babel = require("gulp-babel");
const filter = require("gulp-filter");
const esmReady = ["src/somefile.js"];
gulp.task("default", () => {
const f = filter(esmReady, { restore: true });
gulp
.src("src/*.js")
.pipe(
babel({
presets: [["env", { modules: false }]]
})
)
.pipe(f)
.pipe(
babel({
plugins: ["transform-es2015-modules-systemjs"]
})
)
.pipe(f.restore)
.pipe(gulp.dest("dist"));
});