必须使用 import 加载 ES Module:E:\projects\weblog\next.config.js

Posted

技术标签:

【中文标题】必须使用 import 加载 ES Module:E:\\projects\\weblog\\next.config.js【英文标题】:Must use import to load ES Module: E:\projects\weblog\next.config.js必须使用 import 加载 ES Module:E:\projects\weblog\next.config.js 【发布时间】:2021-12-16 17:01:15 【问题描述】:

我在 NextJs 中使用 reactstrap,当我从中导入某些内容时,它会显示此错误:

错误 [ERR_REQUIRE_ESM]:必须使用导入来加载 ES 模块:E:\projects\weblog\next.config.js 不支持 ES 模块的 require()。 E:\projects\weblog\next.config.js 的 require() 来自 E:\projects\weblog\node_modules\next\dist\next-server\server\config.js 是一个 ES 模块文件,因为它是一个 .js其最近的父 package.json 包含 "type": "module" 的文件,它将该包范围内的所有 .js 文件定义为 ES 模块。 而是将 next.config.js 重命名为以 .cjs 结尾,将所需代码更改为使用 import(),或从 E:\projects\weblog\package.json 中删除 "type": "module"。

这是我的next.config.js

const path = require("path");
module.exports = 
   images: 
      domains: ["res.cloudinary.com"],
   ,
   sassOptions: 
      includePaths: [path.join(__dirname, "styles/sass")],
   ,
;

我该如何解决这个错误?

谢谢。

【问题讨论】:

您是否尝试过从您的package.json 文件中删除"type": "module" 是的,我做了,但没有工作。 【参考方案1】:

您需要从E:\projects\weblog\package.json.删除 "type": "module"


  "name": "My Best App",
  "version": "0.1.0",
  "type": "module",
  "private": true,
  "scripts": 
    ...
  
  ...

【讨论】:

我试过这个,但错误仍然存​​在。 修改后记得重启项目。 next.config.json 或 next.config.js ? 是的,它是 next.config.js 进行更改,从根文件夹项目中删除文件夹“.next”并重新启动服务器。控制台显示什么?

以上是关于必须使用 import 加载 ES Module:E:\projects\weblog\next.config.js的主要内容,如果未能解决你的问题,请参考以下文章

es6-module

es6-module

ES6Module

ES6中export , export default , import模块系统总结

ES6 Module export与import复合使用

es6:module模块(export,import)