(node:1494) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use node --trace-warnings ...
to show where the warning was created)
报这个错如何解决
这个错误提示是因为你在使用 Node.js 加载一个 ES 模块(ESM),但你的项目配置或文件扩展名不正确。要解决这个问题,你有两个主要的选择:
package.json
中设置 "type": "module"
package.json
文件。"type"
字段为 "module"
,如下所示:{
"name": "your-project-name",
"version": "1.0.0",
"type": "module",
// 其他配置项
}
这样,所有以 .js
结尾的文件将被视为 ES 模块。
.mjs
扩展名如果你不想修改 package.json
文件,你可以将你的 ES 模块文件的扩展名改为 .mjs
。例如,将 your-file.js
改为 your-file.mjs
。
import
和 export
。假设你有一个文件 index.js
,内容如下:
import { myFunction } from './myModule.js';
myFunction();
你可以选择以下两种方式之一来解决问题:
package.json
{
"name": "my-project",
"version": "1.0.0",
"type": "module"
}
.mjs
扩展名将 index.js
重命名为 index.mjs
,并确保导入的模块文件也使用 .mjs
扩展名。
import { myFunction } from './myModule.mjs';
myFunction();
通过以上任意一种方式,你应该能够解决这个警告并正确加载 ES 模块。