【发布时间】:2021-08-24 10:57:52
【问题描述】:
我正在尝试使用 babel 设置 NodeJS 项目。 一切似乎都很好,但是当我导入包'supports-color'时出现以下错误:
Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: C:\Users\me\Desktop\supports-color-test\node_modules\supports-color\index.js
这发生在我的主项目中,因此我创建了另一个项目以查看是否再次出现相同的错误。
以下是我的测试项目的文件。
index.js
import express from "express";
import supportsColor from "supports-color"; // When adding this module the error appears.
const server = express();
if (supportsColor.stdout.has16m) {
console.log('terminal supports all colors');
}
server.listen(3000, () => {
console.log('server is running');
})
这是 .babelrc.json 文件。除非我尝试在 index.js 中导入我的 supports-color 模块,否则它可以完成这项工作。
{
"presets": [
"@babel/preset-env"
],
"plugins":[]
}
这是 package.json 的一部分,您可以在其中看到我是如何编译代码的。
"scripts": {
"build": "babel src --out-dir dist",
"prestart": "rimraf dist && npm run build",
"start": "node ./dist/index.js",
},
我真的不知道为什么这个错误不断出现。当 .babelrc.json 被删除并且我在 package.json 中使用 "type": "module" 时它确实可以工作,但是代码没有被编译为 CommonJS。所以这不是一个选择。
我也尝试过不同的 babel 配置文件,但似乎没有任何效果。
节点版本:14.16.1
NPM 版本:6.14.12
我使用的依赖项:
"dependencies": {
"express": "^4.17.1",
"supports-color": "^9.0.2",
"@babel/cli": "^7.14.5",
"@babel/core": "^7.14.6",
"@babel/preset-env": "^7.14.5",
"rimraf": "^3.0.2"
}
如果需要更多信息,请告诉我。
【问题讨论】:
标签: javascript node.js babeljs es6-modules