提问者:小点点

在 Node.js 中导入:错误“必须使用导入来加载 ES 模块”[重复]


我正在尝试将myArr从hello. js导入index.js。但是我得到一个错误

Error [ERR_REQUIRE_ESM]: Must use import to load ES Module

文件hello.js

export let myArr = ['hello', 'hi', 'hey'];

文件index.js

import { myArr } from './hello.js';
console.log(myArr);

我哪里出错了?


共3个答案

匿名用户

使用版本2:

npm install node-fetch@2

从 v3 获取节点是一个仅限 ESM 的模块 - 您无法使用 require() 导入它。

如果您无法切换到ESM,请使用与CommonJS保持兼容的v2。v2的关键错误修复将继续发布。

匿名用户

我运行您的代码没有任何问题。检查两件事:

    < li>Node.js版本

匿名用户

在构建我的React项目时,我遇到了类似的问题。

这是错误:

ERROR in ./src/index.js
Module build failed (from ./node_modules/babel-loader/lib/index.js):
Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: /home/pradeep/Work/my_project/node_modules/@babel/runtime/helpers/interopRequireWildcard/_index.mjs

然后我意识到我使用的Node.js版本与这个项目中用于安装包的版本不同。

我有两个选择:

    < li >将Node.js版本更改为此项目所需的版本,然后重新构建。 < li >使用您拥有的Node.js版本,删除node_modules目录和package-lock.json文件,然后重新安装npm。

我选择了第一种方法,它对我有用。