typescript 编码解码器中的Nanoid4错误[ERR_REQUIRE_ESM]:ES模块的require()

wfveoks0  于 2022-11-26  发布在  TypeScript
关注(0)|答案(3)|浏览(355)

我更新到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"
    ]
  }

不知道为什么坏了

juzqafwq

juzqafwq1#

出现错误“[ERR_REQUIRE_ESM]:require()不受支持”,因为您正在导入的包已转换为仅ESM包,这意味着该包无法再使用require()导入。请使用npm i nanoid@2.1.11

idfiyjo8

idfiyjo82#

我将导入更改为:***从“纳米粒子”导入 * 作为纳米粒子;***并且成功了,因此您可以尝试重新编写import语句
nanoid文档没有具体说明这一点,但我只是想了想,并尝试了一下,它工作了
我希望这对其他人有帮助

uujelgoq

uujelgoq3#

如果您使用nanoid的另一个版本,则可以使用此功能。例如:

npm uninstall nanoid
npm install nanoid@3.3.4

如果没有,请尝试根据to this更改一些tsconfig.json

相关问题