2016-04-02 1 views
0

de Babel Pour notre projet, nous utilisons EcmaScript 6 à Babel, Gulp et NPM.Faites IntelliJ comprendre l'utilisation des moduleRoot

Nous avons trois projets: Base, Common et Game.

Nous développons activement Common et Game afin que nous ayons les fichiers extraits (et le lien npm de Game to Common), alors que nous obtenons le projet Base via npm et ne le changeons pas souvent.

Les chemins d'importation que nous utilisons commencent par le nom du projet, par exemple import "Base/utils/svg" ou import "Game/model/boardtile". La carte selon ce qui suit sur le système de fichiers:

  • Base/intellij-project/base-project-src/node_modules/base/
  • Common/intellij-project/base-project-src/js/
  • Game/intellij-project/game-project-src/js/

Le problème: IntelliJ ne comprend pas ce régime d'importation . Nous utilisons le moduleRoot et moduleIdoptions of Babel pour identifier nos modules AMD de cette façon pendant le processus de construction de la pâte. Lorsque cela est fait, nous concaténons tout en un seul gros fichier. Cela fonctionne, mais IntelliJ ne sait pas que nous faisons cette magie.

Existe-t-il un moyen de faire comprendre à IntelliJ nos importations? Pour qu'il sache que Base/utils/svg signifie réellement /intellij-project/base-project-src/node_modules/base/? À l'heure actuelle, l'IDE est surtout un éditeur de texte glorifié, car les refactorings dépendent évidemment de l'IDE qui comprend les importations.

Remarque: Malheureusement, je ne peux pas modifier la structure d'importation, car c'est une décision que je ne peux pas modifier. Je ne peux pas non plus passer à d'autres outils au lieu de ceux mentionnés ci-dessus, tels que WebPack.

Répondre

0

Je suis confronté au même problème avec ceci. Je cherche un moyen de me débarrasser des chemins relatifs ennuyeux comme vous l'avez fait, mais les faire travailler avec IntelliJ est un autre travail.

Ce qui peut aider est l'approche symlink que l'on peut trouver ici. https://gist.github.com/branneman/8048520

IntelliJ peut travailler bien avec node_modules, vous pouvez donc créer un lien symbolique un dossier dans votre node_modules pour pointer vers la vraie chose. Ensuite, je suppose qu'IntelliJ sera capable de résoudre vos importations.