13

嗨尝试在我非常简单的应用程序上安装粉笔,然后我收到错误:

Error [ERR_REQUIRE_ESM]: require() of ES Module my-file-is-here  and chalk\node_modules\chalk\source\index.js from my-file-is-here not supported.
Instead change the require of index.js in my-file-is-here to a dynamic import() which is available in all CommonJS modules.
    at Object.<anonymous> (`my-file-is-here`) {
  code: 'ERR_REQUIRE_ESM'
}

那是我的代码:

const os = require("os")
const chalk = require("chalk")

console.log("app running")
4

6 回答 6

21

粉笔 5 已更改为 ESM。他们提供了一个链接以更好地理解这意味着什么:纯 ESM

从粉笔自述文件:

重要提示:粉笔 5 是 ESM。如果您想将 Chalk 与 TypeScript 或构建工具一起使用,您现在可能想要使用 Chalk 4。

截至本回复,粉笔 4 的最后一个版本是4.1.2.

于 2021-12-20T16:51:27.640 回答
5

这与您使用的版本有关,我认为是 5.0.0

  1. npm uninstall chalk

然后

  1. npm i chalk@2.4.1

现在你可以运行你的代码了

const chalk = require('chalk');
console.log(chalk.blue('Hello world!')); 
于 2022-01-17T23:12:24.250 回答
2

Step-1 npm uninstall chalk(删除所有粉笔文件)


Step-2 npm install chalk@4.1.0

const chalk = require("chalk");
console.log(chalkl.green("Hello"));

完毕

于 2022-02-03T15:25:54.723 回答
1

//首先改变你的Package.json

"main": "app.js",
"type": "module",//use this line 

//App.js中的第二次改动

import os from 'os' //  const os = require("os")

import chalk from 'chalk';//const chalk = require("chalk")
于 2021-12-19T17:20:22.153 回答
0

认为它是 ES 模块并且可以正常工作import,但是您可以执行以下操作:

const { chalk } = require("chalk");

当我以 v8 风格使用 firebase 时,它​​对我有用。

于 2021-12-16T21:02:20.343 回答
0
  • 添加"type": "module"到您的 package.json。
  • 替换"main": "index.js""exports": "./index.js"您的package.json.
  • 将 package.json 中的“engines”字段更新为 Node.js 12:“node”:“^12.20.0 || ^14.13.1 || >=16.0.0”。
  • 'use strict';从所有 JavaScript 文件中删除。
  • 全部替换require()/module.exportimport/export

仅使用完整的相对文件路径imports: import x from '.';→ import x from './index.js';

如果您有 TypeScript 类型定义(例如index.d.ts),请将其更新为使用 ESM 导入/导出。

可选但推荐使用node: protocolfor 导入。

于 2022-01-31T11:07:47.613 回答