【问题标题】:NodeJS: Required library uses ecma6 modulesNodeJS:所需库使用 ecma6 模块
【发布时间】:2019-09-10 06:31:50
【问题描述】:

我的应用程序依赖于对模块使用 ecma6 语法的库:

require lib = 'lib.js' // myapp.js
import Foo from 'bar' // lib.js
...

我想运行 node myapp.js,但它会导致语法错误,因为 node 不支持 ecma6 模块(而 --experimental-modules 需要将 lib.js 命名为 lib.mjs)。

有什么方法可以在不改变lib.js源代码的情况下运行myapp.js

【问题讨论】:

  • 它是什么库?几乎所有的库都以捆绑或转译的形式分发,因此它们不需要支持 ES 模块。使用这样的库会很痛苦,不仅在 Node 中,而且在其他任何地方。
  • 我明白了。 lib 只公开 ES 模块是不自然的。我想这个是这样发布的,因为它主要由它的维护者使用并且适合他们的需要。考虑打开一个问题。截至目前,需要使用 Babel 或 Webpack/Rollup 进行处理。
  • 你也可以修改 Node loader 使用 js 代替 mjs 用于特定的 ES 模块,见stackoverflow.com/questions/50846189/…

标签: javascript node.js


【解决方案1】:

查看https://babeljs.io/,您可以将代码(使用该库)编译为常用格式

【讨论】:

    猜你喜欢
    • 2016-05-05
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 2016-12-05
    • 2017-10-27
    • 2014-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多