我正在尝试使用粉笔npm。我的代码是:
const chalk = require('chalk');
console.log(
chalk.green('All sytems go') +
chalk.orange('until').underline +
chalk.black(chalk.bgRed('an error occurred'))
);当我输入节点main.js时,我在我的终端中收到这个错误。
Error ERR_REQUIRE_ESM:不支持/User/ezell/ERR_REQUIRE_ESM/CodeX/NPM/main.js中ES模块ERR_REQUIRE_ESM的要求()。相反,将/Users/ezell/ index.js /CodeX/NPM/main.js中的CommonJS需求更改为所有CommonJS模块中可用的动态导入()。在对象上。(/Users/ezell/Documents/CodeX/NPM/main.js:1:15) {代码:'ERR_REQUIRE_ESM‘}
发布于 2022-04-09 03:58:14
您需要切换到使用import关键字,因为Chalk 5只支持ESM模块。
因此,要修改代码以适应这些更改,您需要.
package.json文件以允许ESM导入。在package.json文件中添加以下内容:
{“类型”:“模块”}import关键字加载Chalk,如下所示:
从“粉笔”进口粉笔;但是,如果您想使用require(),则需要将其降级为Chalk 4。按照以下步骤降级。
chalk密钥替换为package.json文件中的以下内容:
{“依赖项”:{“粉笔”:"4.1.2“}package.json文件中安装Chalk。确保在您的package.json文件所在的目录中运行此操作!
$ npm安装require()语句。
const粉笔=要求(“粉笔”);总之,这是你可以做的两件事。
import语句。require()语句。发布于 2022-04-09 03:22:32
发布于 2022-08-07 08:31:29
我得到了相同的纳米ERR_REQUIRE_ESM错误:^4.0.0&有多种方法可以解决这个错误:-
1)使用fix esm https://www.npmjs.com/package/fix-esm模块&导入如下模块:
const someModule = require("fix-esm").require("some-module");2)使用动态导入,如下所示:
import('nanoid')
.then((res)=>{ console.log(res) })
.catch((err)=>{ console.log(err) });在上述两种情况下,只需确保在package.json中没有类型:“模块”字段,否则就会出现"TypeError ERR_UNKNOWN_FILE_EXTENSION:未知文件扩展名“错误。
3)将模块版本降级为稳定的旧版本,例如在我的情况下,当我将奈米版本降级为:
"nanoid": "^3.1.22"https://stackoverflow.com/questions/71804844
复制相似问题