8
votes

Angular 7 Impossible de trouver un moyen d'obtenir les travaux de mappage de chemin tsconfig.json

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?


0 commentaires

3 Réponses :


3
votes

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.


0 commentaires

2
votes

Testé avec angular 9 RC:

 description of project

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/*"
      ],
    }
  ...
}


0 commentaires

1
votes

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.


0 commentaires