typescript - Nanoid4 in codecept errore [ERR_REQUIRE_ESM]: require() di modulo ES
Ho aggiornato a nanoid4 e ho iniziato a ricevere il seguente errore:
[ERR_REQUIRE_ESM]: require() di ES Module [...]/node_modules/nanoid/index.js non è supportato. Invece cambia il require di index.js in [...]/signup_test.ts in un import() dinamico che è disponibile in tutti i moduli CommonJS
Questo è l'import che sta lamentando:
import { customAlphabet } from 'nanoid'
Questo è il file tsconfig che sto usando:
{
"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"
]
}
Non sono sicuro del perché sia rotto
Risposta n. 1
Funziona se usi un'altra versione di nanoid. Per esempio:
npm uninstall nanoid
npm install [email
:
Risposta n. 2
L'errore "[ERR_REQUIRE_ESM]: require() not supported" si verifica perché un pacchetto che stai importando è stato convertito in un pacchetto ESM solo, il che significa che il pacchetto non può più essere importato con require(). Usa npm i [email
