对于我们的项目,我们通过Babel、Gulp和npm使用 EcmaScript 6 。
我们有三个项目:Base、Common 和 Game。
我们正在积极开发 Common 和 Game,因此我们已经检查了这些(以及从 Game 到 Common 的 npm 链接),而我们通过 npm 获取 Base 项目并且不经常更改它。
我们使用的导入路径以项目名称开头,例如import "Base/utils/svg"
或import "Game/model/boardtile"
。根据文件系统上的映射如下:
Base
→/intellij-project/base-project-src/node_modules/base/
Common
→/intellij-project/base-project-src/js/
Game
→/intellij-project/game-project-src/js/
问题: IntelliJ 不理解这个导入方案。在 gulp构建过程中,我们使用 Babel 的moduleRoot和moduleId 选项来识别我们的 AMD 模块。完成后,我们将所有内容连接到一个大文件中。这行得通,但 IntelliJ 不知道我们做了这个魔术。
有没有办法让 IntelliJ 理解我们的导入?这样它就会知道这Base/utils/svg
实际上意味着/intellij-project/base-project-src/node_modules/base/
什么?目前 IDE 主要是一个美化的文本编辑器,因为重构显然依赖于 IDE 对导入的理解。
注意:很遗憾,我无法更改导入结构,因为这是我无法更改的决定。我也不能切换到其他工具而不是上述工具,例如 WebPack。