7
votes

ng serve ne peut pas résoudre les importations à partir du chemin src, mais fonctionne avec l'utilisation du chemin relatif

lors de l'importation de quelque chose en utilisant src \ app ... angular cli donne une erreur "Module non trouvé: Erreur: Impossible de résoudre 'src / app / shared / k / k-api.service' dans 'C: ...'". erreur TS2307: Impossible de trouver le module 'src / app / shared / k / k-api.service'

import { KAPIService } from '../../../../shared/k/k-api.service';

mais lors de l'utilisation du chemin relatif, cela fonctionne très bien

import { KAPIService } from 'src/app/shared/k/k-api.service';


0 commentaires

4 Réponses :


1
votes

Le problème ici est que le chemin 'src / some / path / here' ne peut pas être résolu par le webpack. Ce n'est pas exactement un chemin absolu comme vous pourriez le penser.

Vous pouvez essayer de modifier la configuration du pack Web et d'ajouter un alias [référez-vous ici: https://webpack.js.org/configuration/resolve/ ]

et en ajoutant dites quelque chose comme 'Src': path.resolve (__ dirname, 'src /') afin que vous puissiez l'utiliser comme base absolue Src


1 commentaires

il n'est pas difficile d'éditer webpack dans des versions angulaires plus récentes. stackoverflow.com/questions/39187556/...



3
votes

J'ai réussi à le résoudre en changeant "baseUrl": "./", à "baseUrl": "./src" , dans tsconfig.json puis

import { KAPIService } from 'app/shared/k/k-api.service';

Je ne sais pas si c'est la meilleure solution, mais cela fonctionne pour moi.


0 commentaires

0
votes

Vérifiez la propriété moduleResolution dans reconfigure.json. lorsqu'il est défini sur node et que le chemin donné n'est pas relatif, le module est résolu à partir du répertoire node_modules à partir duquel le webpack est démarré. Si le module n'est pas trouvé, le module nœud dans le répertoire parent est recherché (recherche récursive jusqu'à ce que la racine soit atteinte)


0 commentaires

0
votes

J'ai "résolu" cette ouverture du répertoire racine du projet (le parent de src) dans VSCode et non dans le répertoire src .


0 commentaires