📅  最后修改于: 2023-12-03 15:42:08.339000             🧑  作者: Mango
在使用require()
导入ES Module时,可能会遇到以下错误:
Error [ERR_REQUIRE_ESM]: Must use import to load ES Module
这是因为Node.js已经支持了ES Module,它们比CommonJS Module更加现代和优化。
import
在导入ES Module时,使用import
替换require()
。
import { func } from './module.js';
对于不支持ES Module语法的模块,可以将文件扩展名改为.cjs
或.mjs
,以明确标识模块类型。
const data = require('./data.mjs');
--experimental-modules
选项如果需要在Node.js中使用ES Module,可以在启动应用程序时使用--experimental-modules
选项。
node --experimental-modules app.js
此选项可以让Node.js从文件扩展名(.mjs
和.js
)来自动识别模块类型。
package.json
文件如果不想在启动应用程序时使用--experimental-modules
选项,可以通过修改package.json
文件来使用ES Module。
{
"type": "module",
"main": "app.js"
}
在package.json
文件中添加type
字段并将其设置为module
,这样Node.js将自动识别所有.js
和.mjs
文件为ES Module,并启用ES Module语法。
Node.js现在支持ES Module,这为我们的应用程序带来了更好的可维护性、可读性和性能。通过遵循上述解决方案,我们可以愉快地使用ES Module,并减少require()
导致的ERR_REQUIRE_ESM
错误。