Actualmente estoy usando create-react-app para iniciar uno de mis proyectos. Básicamente, estoy tratando de configurar rutas en tsconfig.json al agregarlas al tsconfig.json predeterminado generado por create-react-app:
"baseUrl": "./src", "paths": { "interfaces/*": [ "common/interfaces/*", ], "components/*": [ "common/components/*", ], }, Sin embargo, cada vez que ejecuto yarn start , que básicamente ejecuta react-scripts start , elimina mis cambios y vuelve a generar las configuraciones predeterminadas.
¿Cómo puedo decirle a create-react-app que use mis configuraciones personalizadas?
Pude hacer esto usando los consejos de este número .
Coloque las opciones de configuración que reaccionan a los scripts que les gusta eliminar en un archivo separado (p. ej., paths.json) y consúltelo desde tsconfig.json a través de la directiva extends.
rutas.json:
{ "compilerOptions": { "baseUrl": "./src", "paths": { "interfaces/*": [ "common/interfaces/*"], "components/*": [ "common/components/*"], } } }tsconfig.json
{ "extends": "./paths.json" ...rest of tsconfig.json }Create React App actualmente no es compatible baseUrl . Sin embargo, hay una solución... para configurar baseUrl tanto para el paquete web como para el IDE, debe hacer lo siguiente:
.env con el siguiente código: NODE_PATH=./tsconfig.paths.json con el siguiente código dentro: { "compilerOptions": { "baseUrl": "src", "paths": { "src/*": ["*"] } } }tsconfig.json { "extends": "./tsconfig.paths.json", ... }No puedes y no estoy seguro de cuándo podrás hacerlo. He estado tratando de usar baseUrl y rutas para poder evitar importaciones relativas pero, como puede ver, están eliminando intencionalmente ciertos valores. El "(todavía)" es alentador pero ( suspiro ) quién sabe cuándo lo apoyarán oficialmente. Recomiendo suscribirse a este problema de github para recibir una alerta si esto cambia.
The following changes are being made to your tsconfig.json file: - compilerOptions.baseUrl must not be set (absolute imports are not supported (yet)) - compilerOptions.paths must not be set (aliased imports are not supported)