2016-04-02 11 views
0

Für unser Projekt verwenden wir EcmaScript 6 bis Babel, Gulp und npm.Machen IntelliJ verstehen Nutzung von Babels moduleRoot

Wir haben drei Projekte: Base, Common und Game.

Wir entwickeln aktiv Common und Game, also haben wir diese ausgecheckt (und npm Link von Game zu Common), während wir das Base-Projekt durch npm bekommen und es nicht oft ändern. Die von uns verwendeten Importpfade beginnen mit dem Projektnamen wie import "Base/utils/svg" oder import "Game/model/boardtile". Die Karte nach der folgenden auf dem Dateisystem:

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

Das Problem: IntelliJ nicht versteht, diese Einfuhrregelung . Wir verwenden die moduleRoot und moduleIdoptions of Babel, um unsere AMD-Module während des Kultivierungsvorgangs zu identifizieren. Wenn das erledigt ist, verketten wir alles zu einer großen Datei. Das funktioniert, aber IntelliJ weiß nicht, dass wir diese Magie machen.

Gibt es eine Möglichkeit, IntelliJ weiterhin unsere Importe verstehen zu lassen? So dass es wissen wird, Base/utils/svg bedeutet eigentlich /intellij-project/base-project-src/node_modules/base/? Im Moment ist die IDE meist ein verklärter Texteditor, da Refactorings offensichtlich darauf angewiesen sind, dass die IDE die Importe versteht.

Hinweis: Leider kann ich die Importstruktur nicht ändern, da dies eine Entscheidung ist, die ich nicht ändern kann. Ich kann auch nicht zu anderen Tools als den oben genannten wechseln, wie z. B. WebPack.

Antwort

0

Ich bin mit dem gleichen Problem konfrontiert. Ich suche nach einer Möglichkeit, die ärgerlichen relativen Pfade loszuwerden, wie ihr es getan habt, aber sie mit IntelliJ arbeiten zu lassen, ist ein anderes Stück Arbeit.

Was kann helfen, ist der Symlink-Ansatz, der hier gefunden werden kann. https://gist.github.com/branneman/8048520

IntelliJ lässt sich sehr schön mit node_modules arbeiten, so könnten Sie einen Ordner in Ihrem node_modules Symlink an der Realität zu zeigen. Dann wird IntelliJ in der Lage sein, Ihre Importe zu beheben.