Ricerca nel sito web

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

Articoli correlati