Estaba leyendo sobre el mapeo de rutas en tsconfig.json
y quería usarlo para evitar usar las siguientes rutas feas:
La organización del proyecto es un poco extraña porque tenemos un mono-repositorio que contiene proyectos y bibliotecas. Los proyectos están agrupados por empresa y por navegador / servidor / universal.
¿Cómo puedo configurar las rutas en tsconfig.json
lugar de:
import { Something } from "../../../../../lib/src/[browser/server/universal]/...";
Puedo usar:
import { Something } from "lib/src/[browser/server/universal]/...";
¿Se requerirá algo más en la configuración del paquete web? o es tsconfig.json
suficiente?
typescript
node-modules
tsconfig
Remo H. Jansen
fuente
fuente
Respuestas:
Esto se puede configurar en su archivo tsconfig.json, ya que es una característica de TS.
Puedes hacer así:
Tenga en cuenta que la ruta a la que desea hacer referencia, toma su baseUrl como la base de la ruta a la que apunta y es obligatorio como se describe en el documento.
El carácter '@' no es obligatorio.
Después de configurarlo de esa manera, puede usarlo fácilmente de esta manera:
Lo único que puede notar es que el intellisense no funciona en la última versión actual, por lo que sugeriría seguir una convención de índice para importar / exportar archivos.
fuente
moduleNameMapper
: tsjest # 414Puede usar la combinación de
baseUrl
ypaths
documentos .Asumiendo que la raíz está en el
src
directorio superior (y leí tu imagen correctamente) usaPor
webpack
También podría ser necesario añadir Resolución del módulo . Parawebpack2
esto podría verse comofuente
Comprueba estas soluciones similares con asterisco
fuente
La respuesta de Alejandros funcionó para mí, pero como estoy usando el
awesome-typescript-loader
con webpack 4, también tuve que agregarlotsconfig-paths-webpack-plugin
a mi archivo webpack.config para que se resuelva correctamentefuente
Si está utilizando rutas, deberá volver a cambiar las rutas absolutas a rutas relativas para que funcione después de compilar el mecanografiado en JavaScript simple usando
tsc
.La solución más popular para esto ha sido tsconfig-caminos hasta ahora.
Lo he intentado, pero no me funcionó para mi configuración complicada. Además, resuelve rutas en tiempo de ejecución, lo que significa una sobrecarga en términos del tamaño de su paquete y resuelve el rendimiento.
Entonces, escribí una solución yo mismo, tscpaths .
Yo diría que es mejor en general porque reemplaza las rutas en tiempo de compilación. Significa que no hay dependencia del tiempo de ejecución ni sobrecarga de rendimiento. Es bastante simple de usar. Solo necesita agregar una línea a sus scripts de compilación
package.json
.El proyecto es bastante joven, por lo que podría haber algunos problemas si su configuración es muy complicada. Funciona perfectamente para mi configuración, aunque mi configuración es bastante compleja.
fuente
si se está utilizando typecript + webpack 2 + at-loader, hay un paso adicional (la solución de @ mleko solo funcionaba parcialmente para mí):
Resolución de ruta avanzada en TypeScript 2.0
fuente
Esto funciona para mi:
Esto carga todas las rutas en tsconfig.json. Una muestra tsconfig.json:
Asegúrese de tener tanto baseUrl como rutas para que esto funcione
Y luego puedes importar como:
fuente
Su tipo de ruta relativa En lugar del código siguiente
Podemos evitar que "../../../../../" parezca extraño y no legible también.
Entonces, el archivo de configuración de TypeScript tiene una respuesta para lo mismo. Simplemente especifique baseUrl, config se encargará de su ruta relativa.
forma de configuración: el archivo tsconfig.json agrega las siguientes propiedades.
Así que finalmente se verá a continuación
Se ve simple, impresionante y más legible.
fuente
Verifique la operación del compilador usando esto
He agregado baseUrl en el archivo para un proyecto como el siguiente:
"baseUrl": "src"
Esta funcionando bien Entonces agregue su directorio base para su proyecto.
fuente
/
comienza solo desde la raíz, para obtener la ruta relativa que debemos usar./
o../
fuente
Parece que ha habido una actualización de React que no te permite configurarla
"paths"
entsconfig.json
ningún momento.Nicely React solo genera una advertencia:
luego actualiza su
tsconfig.json
y elimina la"paths"
sección completa para usted. Hay una manera de evitar esta carreraEsto expulsará todas las
create-react-scripts
configuraciones agregandoconfig
yscripts
directorios y archivos de construcción / configuración en su proyecto. Esto también permite un mayor control sobre cómo se construye, nombra, etc., todo mediante la actualización de{project}/config/*
archivos.Luego actualice su
tsconfig.json
fuente