我更新到nanoid 4并开始收到以下错误:
[ERR请求ESM]:不支持ES模块[...]/node_modules/nanoid/index.js的require()。请改为将[...]/signup_test.ts中index.js的require更改为所有CommonJS模块中可用的动态导入()
这就是它所抱怨的导入:
import { customAlphabet } from 'nanoid'
这是我正在使用的tsconfig文件:
{
"ts-node": {
"files": true
},
"compilerOptions": {
"jsx": "react-jsx",
"types": [
"node",
"codeceptjs"
],
"experimentalDecorators": true,
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"strict": false,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"esModuleInterop": true,
"module": "ES6",
"moduleResolution": "node",
"resolveJsonModule": true,
"incremental": true,
"target": "ESNext",
},
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx"
],
"exclude": [
"node_modules"
]
}
不知道为什么坏了
3条答案
按热度按时间juzqafwq1#
出现错误“[ERR_REQUIRE_ESM]:require()不受支持”,因为您正在导入的包已转换为仅ESM包,这意味着该包无法再使用require()导入。请使用npm i nanoid@2.1.11
idfiyjo82#
我将导入更改为:***从“纳米粒子”导入 * 作为纳米粒子;***并且成功了,因此您可以尝试重新编写import语句
nanoid文档没有具体说明这一点,但我只是想了想,并尝试了一下,它工作了
我希望这对其他人有帮助
uujelgoq3#
如果您使用
nanoid
的另一个版本,则可以使用此功能。例如:如果没有,请尝试根据to this更改一些
tsconfig.json
。