tsconfig - TypeScript: Cómo importar desde la carpeta superior cuando la compilación añade profundidad a la estructura del proyecto
La estructura de mi proyecto es la siguiente
dist
|- src
| |- s.js
|- test
|- t.js
node_modules
results
|- r.json
src
|- s.ts
test
|- t.ts
tsconfig.json
typings.d.ts
s.ts importa r.json de la siguiente manera:
import * as results from '../results/r.json';Obviamente, esto no funciona después de la compilación ya que results ahora está dos carpetas arriba...
¿Cuál es el enfoque adecuado para solucionar esto? A continuación se muestra mi tsconfig.json
{
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"declaration": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"inlineSourceMap": true,
"lib": [
"dom",
"es2015"
],
"moduleResolution": "node",
"outDir": "dist/",
"target": "es5",
"typeRoots": [
"node_modules/@types",
"./typings.d.ts"
]
},
"include": [
"src/**/*.ts",
"results/r.json",
"test/**/*.ts",
"./typings.d.ts"
],
"exclude": [
"node_modules"
],
"compileOnSave": false,
"atom": {
"rewriteTsconfig": false
}
}
Respuesta #1
La mejor manera es evitar esto por completo. Trata de hacer que el nivel de profundidad coincida.
p. ej.:
root
dist-es5
index.ts
index.spec.ts
src
index.ts
index.spec.ts
En cuanto a mantener el código de prueba/especificación fuera de lo distribuido, puedes tener múltiples tsconfig.json, por ejemplo, puedes echar un vistazo a: Configuración de tsconfig con la carpeta de espec/prueba
