J'ai commencé un projet angular 7 et j'essaye de configurer le "mappage de chemin" sur angular.json pour changer ma méthode d'importation de ceci:
ERROR in src/app/errors/not-foud/not-found.component.ts(2,29): error TS2307: Cannot find module '@environments/environment'
à ceci:
"compilerOptions": { "baseUrl": "src", // This must be specified if "paths" is. ... "paths": { "@app/*": ["app/*"], "@config/*": ["app/_config/*"], "@environments/*": ["environments/*"], "@shared/*": ["app/_shared/*"], "@helpers/*": ["helpers/*"] }, ...
J'ai fait cette configuration sur le fichier tsconfig.json de niveau racine:
import { environment } from '@environments/environment';
Mais j'obtiens aussi cette erreur sur le cli
import { environment } from '../../../environments/environment';
Il me manque quelque chose?
3 Réponses :
Après avoir essayé et réessayé, j'ai découvert que le problème venait de l'un de mes paramètres vscode qui s'appelait: "Typescript> Préférences: Spécificateur de module d'importation" qui était défini sur "relatif" , au lieu de "non relatif" . En changeant cela, j'ai pu résoudre le problème.
Testé avec angular 9 RC:
mettre à jour les deux emplacements:
au niveau de la base du projet pour rendre vscode heureux:
// app.tsconfig.json // .\projects\web\tsconfig.app.json { ... "baseUrl": "./", "paths": { "@web-env/*": [ "src/environments/*" ], "@web-app/*": [ "src/app/*" ], } ... }
dans le projet enfant, mettez à jour ceci pour rendre cli heureux:
// tsconfig.json // .\ { ... "paths": { "@x/*": [ "x/*" ], "@web-env/*": [ "src/environments/*" ], "@web-app/*": [ "./projects/web/src/app/*" ], } ... }
Dans mon cas, c'était parce que le src \ tsconfig.app.json
avait également une carte de chemins définie. Celui de mon tsconfig principal était ignoré par le compilateur TypeScript. Je l'ai supprimé et cela a commencé à fonctionner.