【发布时间】:2016-11-13 12:10:28
【问题描述】:
我有什么方法可以告诉 babel 忽略某些导入,例如我不希望 babel 接触任何 es5 导入,例如 polyfill。
我尝试了排除选项,但它没有做任何事情。这是我的开发依赖项:
"devDependencies": {
"babel-preset-es2015-rollup": "^1.2.0",
"rollup": "^0.36.3",
"rollup-plugin-babel": "^2.6.1"
}
这也是我的 index.js 和 cmets 显示我希望 babel 忽略的内容:
/* BABEL DON"T TOUCH THESE PLEASE */
import "parties/promise.js";
import "parties/fetch.js";
import "parties/domtastic.min.js";
/* END BABEL NO TOUCHY */
/* BABEL TRANSPILE THESE */
import "settings/global.js";
import "settings/tabs.js";
import "modules/helpers.js";
import "modules/modal.js";
import "modules/notify.js";
import "modules/tabs.js";
/* END BABEL TRANSPILE */
我该怎么做?我需要另一个包来处理这个吗?
非常感谢任何帮助,谢谢。
【问题讨论】:
-
如何编译?似乎它允许编译单个文件:babeljs.io/docs/usage/cli/#compile-files 所以只需编译你想要的文件,不要编译已经是 es5 的文件。或者如果你想编译一个目录,使用 --ignore 并列出所有你想被排除的文件: babel src --out-dir lib --ignore settings/global.js,settings/tabs.js,..,etc
-
谢谢你,如果我只使用普通的 babel,这种方法就可以了。但是我需要使用汇总来捆绑我的 es6 模块并且忽略似乎没有效果。我使用
rollup -c命令编译。 -
我明白了。我知道您可以使用例如 JSPM,它也可以生成 Rollup 优化构建:jspm.io/0.17-beta-guide/… 或者我建议您从应用程序中删除 polyfill 并将它们包含在 HTML 中,因为您不需要用于 polyfill 的模块系统.
-
虽然我以 polyfill 为例,但它可以是任何 es5 代码。我想最终得到一个包,而不必通过创建中间文件来分离进程。
标签: javascript ecmascript-6 babeljs es6-modules rollupjs