【发布时间】:2017-01-12 06:44:26
【问题描述】:
我正在使用 gulp、browserify 和 babelify 以便在我的项目中使用 ES6 语法。当我导入一个也是用 ES6 编写的 node_module 时,gulp 会抛出错误:'import' and 'export' may appear only with 'sourceType: module'
我在babelify's github page 上阅读了建议的解决方案。简而言之,有两种可能:
- 在受影响的 node_module 的 package.json 中添加 browserify 选项
- 配置 gulp,以便 browserify 尝试使用 babelify 转换所有文件(并为不必要的文件添加忽略选项)。
第一个选项会阻止其他人克隆我的项目并立即启动并运行它。是否有解决方法,可能使用 npm 后安装脚本?
第二个选项似乎有点矫枉过正。有没有更优雅的解决方案?
【问题讨论】:
-
通常你会在发布之前编译你的代码,然后 Browserify 等不需要知道任何关于 ES6 的知识。无论如何,这是最常见的工作流程。
-
如果我理解正确的话,那个特定 npm 模块的作者不应该发布 ES6 代码。
-
Babelify 确实有一个
onlyoption。您可以将其配置为全局转换并使用only来限制它转换的node_modules。 -
谢谢,@cartant!如果你可以发布一个例子,我会接受它作为这个问题的答案。
标签: node.js npm gulp ecmascript-6 browserify