Executing typescript code using ts-node gives "Cannot use import statement outside a module" error
Estoy intentando ejecutar apollo-server y el código que he escrito está en TypeScript.
Mi carpeta de códigos contiene un tsconfig.json que se ve así:
{
"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"
]
}
El comando que estoy ejecutando es el siguiente:
$ npx ts-node ./server/index.ts
Si elimino tsconfig.json (lo cual, por supuesto, no puedo hacer), el comando anterior funciona bien. No estoy seguro de qué configuración está causando realmente el problema.
-----------------------------------
¿encontraste una solución?
-----
@Pablo Por ahora he eliminado temporalmente la opción del módulo que parece funcionar.
-----
la configuración que está buscando es "módulo": "commonjs". Como ts-node ejecuta su código en el entorno nodejs, debe usar su sistema de módulos. Si necesita su configuración como predeterminada para su proyecto, puede crear un segundo tsconfig tsconfig.node.json y apuntarlo con ts-node --project <tsconfig.json>
tsconfig.node.json:
{
"extends": "./",
"compilerOptions": {
"module": "commonjs",
},
}
-----------------------------------
Intenté cambiar la opción del módulo a commonjs. No funcionó. Tengo importaciones de estilo es6 en el código. Genera un error por eso.
-----
Probaré este segundo enfoque de proporcionar un archivo tsconfig.json separado.
-----