【问题标题】:NPM: Depending on a local ES6 module (without transpiling)NPM:依赖于本地 ES6 模块(没有转译)
【发布时间】:2016-04-24 10:49:34
【问题描述】:

我正在本地开发两个 npm 模块,A 和 B,A 有 B 作为其依赖项。

为了方便开发,我使用npm link 符号链接包文件夹;所以在 A 的 node_modules 里面有一个指向 B 项目文件夹的符号链接。

当通过运行 node --harmony 启动 A 时,运行时会抱怨 B 使用 ES6 语言特性。不过,A 自己对 ES6 语言特性的使用没问题。

如何使用未转译的 ES6 模块作为依赖项?

【问题讨论】:

  • 现在我正在使用 babel 进行编译,但无论如何知道这个问题的答案会很有趣:)
  • 这方面有更新吗?我正在处理的前端项目遇到了同样的问题,当我尝试使用jest 进行测试时出现了这个问题。模块 B 是 A 中唯一未转译为 ES5 的 node_module,无论出于何种原因,我都无法让 Jest 从 A 中将 B 转译为 ES5 语法,尽管 babel-jest 与它捆绑在一起。那么我所阅读的内容是否正确,因为我必须在其内部本地转译 B,然后导出转译后的 B 以供 A 使用?

标签: javascript npm ecmascript-6


【解决方案1】:

不确定你的最终目标,但是当我开发一个我需要(或其他人需要)依赖的模块时,我将一个 es5 文件放在 dist 文件夹中,并依赖它。这样 es6 文件保留用于开发目的,而 es5 文件由 babel 动态生成以供消费。

所以就像您使用 babel 转译您的 A 模块一样,我会为 B 模块做同样的事情并依赖它。

【讨论】:

  • 是的,这就是我目前正在做的事情。我的目标是做一个非常简单的设置,所以我想使用 ES6 而不进行任何转译(我所有的东西都在 Node 上运行,而不是在浏览器中。)。
  • 你能举个例子说明一下吗?这将非常有帮助,因为我遇到了同样的问题并且不精通转译和导出转译依赖项的艺术。
猜你喜欢
  • 1970-01-01
  • 2018-10-17
  • 2014-10-17
  • 2021-05-05
  • 2018-03-17
  • 1970-01-01
  • 2017-12-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多