我升级了节点并构建了现有文件。
但它没有建成,而且出现了一个错误。
Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: │
│ ~~/nuxt.config.js │
│ require() of ES modules is not supported. │
│ require() of ~~/nuxt.config.js from │
│ ~~/config.js is an ES │
│ module file as it is a .js file whose nearest parent package.json contains "type": │
│ "module" which defines all .js files in that package scope as ES modules. │
│ Instead rename nuxt.config.js to end in .cjs, change the requiring code to use │
│ import(), or remove "type": "module" from │
│ ~~/package.json.
所以我删除了'类型:module'中。
可以把它取下来吗?
4条答案
按热度按时间eoigrqb61#
如果
package.json
文件中包含"type": "module"
,则源代码应使用import
语法。当你没有的时候,你应该使用require
语法;也就是说,将"type": "module"
添加到package.json
可以启用ES 6模块。更多信息,请看这里。nbnkbykc2#
2022年中期更新
如果你使用的是Node.js v16,如果可以的话,因为它是LTS,你只需要使用
type: module
,如下所述:https://blog.logrocket.com/es-modules-in-node-today/如果你因为某些原因仍然坚持使用较低版本的Node.js,你可以关注Flavio的这篇博客文章:https://flaviocopes.com/how-to-enable-es-modules-nodejs/
并执行以下操作:
package.json
中添加"type": "module"
--experimental-modules
,例如:node --experimental-modules app.js
或者,如果你已经在现代版本的Node上,你可以做其中一个:
package.json
中添加"type": "module"
.mjs
扩展名重命名文件,最终结果如下所示:node app.mjs
ndasle7k3#
@AfsharMohebi的回答非常好,涵盖了最有用的要点。
这个答案是在CI/CD管道周围添加一些颜色,其中可能需要使用添加动态
type
参数来执行用ES6 JavaScript编写的node代码。此外,我知道这与OP的问题无关,但谷歌把我带到了这里,所以希望这对其他人有用。特别地,如果我们没有包含
type: module
* 的package.json
,我们可以根据节点docs* 使用--input-type=module
。例如,我使用下面的命令来测试一个npm包是否上传成功并且可用:
babel
依赖关系包含在完整的ES6到ES 5转换中,可能是必要的,也可能不是必要的。此外,您可能应该固定您正在测试的软件包myPkg
的版本!*t30tvxxf4#
增加**“type”:package.json中的“module”**键,用于在nodejs中使用es6模块