【问题标题】:How to use named imports (ES 6) in NodeJS 14.x?如何在 NodeJS 14.x 中使用命名导入(ES 6)?
【发布时间】:2020-07-23 16:55:14
【问题描述】:

我有一些我喜欢在 nodejs (14.4) 和浏览器中使用的代码。为了让这段代码在 nodejs 中工作,我需要命名导入,例如

import {Vector3} from "three;

ES 6 模块在进行以下更改后总体上可以正常工作:

package.json:

"type": "module",

使用--experimental-specifier-resolution=node 启动nodejs,因此我不必指定文件扩展名。但是对于命名的导入,nodejs 仍然会打印出来:

SyntaxError: The requested module 'three' is expected to be of type CommonJS, which does not support named exports.

有一篇 Stackoverflow 帖子建议使用 esm 包加载器。不幸的是,它有一个错误使 TypeScript“反射元数据”无法使用(问题:https://github.com/standard-things/esm/issues/809)所以我不能使用它。

TL;DR;如何在没有 ESM 包加载器的情况下在 nodeJs 14.4 中启用命名的 ES 6 模块?类型:模块和启动参数已经设置。

【问题讨论】:

    标签: node.js es6-modules


    【解决方案1】:

    这可能不是完美的答案,但我通过将代码库切换到 Type Script (TS) 解决了我的问题:

    • 对于浏览器,我可以配置ts使用es 6模块
    • 对于node,我可以配置ts使用node模块

    -->大家都很开心

    【讨论】:

      猜你喜欢
      • 2021-06-14
      • 1970-01-01
      • 2022-01-06
      • 2018-03-17
      • 2022-01-15
      • 2016-08-29
      • 1970-01-01
      • 2019-09-24
      • 2017-01-12
      相关资源
      最近更新 更多