首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >您将如何修复“ERR_REQUIRE_ESM”错误?

您将如何修复“ERR_REQUIRE_ESM”错误?
EN

Stack Overflow用户
提问于 2022-04-09 02:32:27
回答 4查看 8.3K关注 0票数 0

我正在尝试使用粉笔npm。我的代码是:

代码语言:javascript
复制
     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‘}

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2022-04-09 03:58:14

您需要切换到使用import关键字,因为Chalk 5只支持ESM模块。

因此,要修改代码以适应这些更改,您需要.

  1. 编辑您的package.json文件以允许ESM导入。在package.json文件中添加以下内容: {“类型”:“模块”}
  2. 使用import关键字加载Chalk,如下所示: 从“粉笔”进口粉笔;

但是,如果您想使用require(),则需要将其降级为Chalk 4。按照以下步骤降级。

  1. 将现有的chalk密钥替换为package.json文件中的以下内容: {“依赖项”:{“粉笔”:"4.1.2“}
  2. 然后,运行以下命令,从您的package.json文件中安装Chalk。确保在您的package.json文件所在的目录中运行此操作! $ npm安装
  3. 像普通一样使用require()语句。 const粉笔=要求(“粉笔”);

总之,这是你可以做的两件事。

  • 继续使用Chalk 5,并更新import语句。
  • 降级到Chalk 4,并保留require()语句。
票数 1
EN

Stack Overflow用户

发布于 2022-04-09 03:22:32

粉笔的最新版本只与ESM模块兼容,因此希望您使用import而不是require()加载它。

从医生那里:

重要:粉笔5是ESM。如果您想在TypeScript或构建工具中使用Chalk,那么现在您可能希望使用Chalk 4。阅读更多

所以,你的选择是:

  1. 将项目切换到ESM模块,并使用import而不是require()加载最新版本的Chalk。
  2. 安装Chalk版本4,可以与require()一起使用。
  3. 使用最新版本的nodejs,可以使用动态导入将ESM模块加载到CommonJS模块:const chalk = await import('chalk);
票数 1
EN

Stack Overflow用户

发布于 2022-08-07 08:31:29

我得到了相同的纳米ERR_REQUIRE_ESM错误:^4.0.0&有多种方法可以解决这个错误:-

1)使用fix esm https://www.npmjs.com/package/fix-esm模块&导入如下模块:

代码语言:javascript
复制
const someModule = require("fix-esm").require("some-module");

2)使用动态导入,如下所示:

代码语言:javascript
复制
import('nanoid') 
.then((res)=>{ console.log(res) })         
.catch((err)=>{ console.log(err) });

在上述两种情况下,只需确保在package.json中没有类型:“模块”字段,否则就会出现"TypeError ERR_UNKNOWN_FILE_EXTENSION:未知文件扩展名“错误。

3)将模块版本降级为稳定的旧版本,例如在我的情况下,当我将奈米版本降级为:

代码语言:javascript
复制
"nanoid": "^3.1.22"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71804844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档