node.js - L'exécution du code dactylographié à l'aide de ts-node donne l'erreur "Impossible d'utiliser l'instruction d'importati

CorePress2024-05-09  5

Executing typescript code using ts-node gives "Cannot use import statement outside a module" error

J'essaie d'exécuter Apollo-server et le code que j'ai écrit est en TypeScript.

Mon dossier de code contient un tsconfig.json qui ressemble à ceci :

{
  "compilerOptions": {
    "target": "esnext",
    "lib": [
      "esnext"
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true
  },
  "include": [
    "server"
  ]
}

La commande que j'exécute est ci-dessous :

$ npx ts-node ./server/index.ts

Si je supprime le fichier tsconfig.json (ce que je ne peux bien sûr pas faire), la commande ci-dessus fonctionne correctement. Je ne sais pas quelle configuration est réellement à l'origine du problème.



-----------------------------------

avez-vous trouvé une solution ?

-----

@Pablo Pour l'instant j'ai temporairement supprimé l'option module qui semble fonctionner.

-----

le paramètre que vous recherchez est "module": "commonjs". Comme ts-node exécute votre code dans l'environnement nodejs, vous devez utiliser son système de modules. Si vous avez besoin de votre configuration par défaut pour votre projet, vous pouvez créer un deuxième tsconfig tsconfig.node.json et le cibler avec ts-node --project <tsconfig.json>

tsconfig.node.json :

{
  "extends": "./",
  "compilerOptions": {
    "module": "commonjs",
  },
}


-----------------------------------

J'ai essayé de changer l'option du module en commonjs. Cela n'a pas fonctionné. J'ai des importations de style es6 dans le code. Cela génère une erreur pour cela.

-----

Je vais essayer cette deuxième approche consistant à fournir un fichier tsconfig.json séparé.

-----

Your guide to a better future - quark24
Your guide to a better future - quark24