【问题标题】:Node 12 Native import节点 12 本机导入
【发布时间】:2019-10-25 13:13:42
【问题描述】:

我正在尝试使用与节点 12 一起发布的本机导入 但即使只导入 cors,我总是会收到此错误

import * as cors from 'cors';
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at Module._compile (internal/modules/cjs/loader.js:892:18)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10)
    at Module.load (internal/modules/cjs/loacjsder.js:812:32)
    at Function.Module._load (internal/modules/cjs/loader.js:724:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1025:10)
    at internal/main/run_main_module.js:17:11

节点版本 v12.13.0

我试图关注的文档https://nodejs.org/docs/latest-v12.x/api/esm.html#esm_code_import_code_specifiers

感谢您的帮助

【问题讨论】:

  • 质疑 询问 2 年 2 个月前询问 这是新节点 12 LTS
  • 该功能仍处于试验阶段(即使节点版本 12 是 LTS),因此答案仍然有效。仅仅因为另一个问题很老,并不意味着答案已经过时。
  • :(,Node说12号就可以用了,我还以为不会是实验性的了!耐心等着呢
  • 我不知道有任何官方文档说明它将在 Node 12 中可用(非实验性)。但是,您仍然可以使用 babel (babeljs.io/en/setup) 设置项目并使用 ES6模块,以及其他 ESNext 功能,例如 decorators,甚至是 optional chaining(在正确设置 babel 配置和插件之后)。

标签: node.js node-modules


【解决方案1】:

你必须在运行 node js 时使用这个标志 --experimental-modules,你也必须使用我们的 .mjs 而不是 .js 扩展名

【讨论】:

  • 但它不再是 experimetal 了,它的 LTS 从大约 3 天前开始medium.com/@nodejs/…
  • @MarkusAzer 根据文档:nodejs.org/api/esm.html,它在节点 13.0.1 中仍处于试验阶段。在您的链接文章中,我没有看到任何提及 ES6 导入的内容。
  • 是的,根据 Node 13.0.1 的文档,它仍处于实验阶段
猜你喜欢
  • 2020-10-01
  • 2018-07-04
  • 2018-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-26
相关资源
最近更新 更多