He escrito mis archivos JavaScript de NodeJS con sintaxis de importación/exportación y mi paquete.json tiene "type" : "module"
El problema es que después de que tsc compila el código, el código transpilado en /build/server.js no puede ejecutarse. Dice que Exports is not defined in ES module scope
Aquí está mi tsconfig.json
{ "compilerOptions": { "resolveJsonModule": true, "incremental": true, "target": "es2019" , "module": : "commonjs", "allowJs": true , "outDir": "./build", "strict": true , "noImplicitAny": false, "strictNullChecks": true, "strictFunctionTypes": true, "strictBindCallApply": true, "strictPropertyInitialization": true, "noImplicitThis": true , "alwaysStrict": true , "noImplicitReturns": true, "noFallthroughCasesInSwitch": true, "allowSyntheticDefaultImports": true, "esModuleInterop": true , "inlineSourceMap": true , "experimentalDecorators": true, "emitDecoratorMetadata": true , "forceConsistentCasingInFileNames": true, "useUnknownInCatchVariables": false } } si "module" : "commonjs" y agrego "moduleResolution": "Node" , obtengo un error diferente con mis importaciones:
No puedo encontrar el módulo /build/constants importado de /build/server.js El módulo /build/constants.js existe, pero en mi código no estoy agregando .js a mis importaciones, así que lo estoy importando como esta import {CONSTANTS} from 'constants' .
En un archivo TypeScript, al importar otros archivos TypeScript, las importaciones deberían ser como import {CONSTANTS} from constants.js o import {CONSTANTS} from constants.ts o import {CONSTANTS} from constants , que es lo que tengo ahora.
Soy nuevo en TypeScript. ¿Cuál es la mejor manera de resolver este problema que tengo?
Gracias
Encontré la solución. "type" : "module" tuvo que ser eliminado de paquete.json