对于我们的项目,我们使用EcmaScript 6到 Babel , Gulp 和 npm 。
我们有三个项目: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无法理解此导入方案。我们使用 moduleRoot 和 moduleId options of Babel在gulp构建过程中识别我们的AMD模块。完成后,我们将所有内容连接成一个大文件。这是有效的,但是IntelliJ并不知道我们这样做了。
有没有办法让IntelliJ了解我们的进口?那么它会知道Base/utils/svg
实际上意味着/intellij-project/base-project-src/node_modules/base/
?目前,IDE主要是一个美化的文本编辑器,因为重构显然依赖于IDE了解导入。
注意:遗憾的是我不能改变导入结构,因为这是我无法改变的决定。我也无法切换到其他工具而不是上面提到的工具,例如WebPack。
答案 0 :(得分:0)
我面临同样的问题。我正在寻找一种摆脱烦人的相对路径的方法,但要让他们使用IntelliJ是另一项工作。
可以在这里找到符号链接方法有什么用处。 https://gist.github.com/branneman/8048520
IntelliJ可以很好地与query = new Query();
$messages = $query->select(['name', 'message', 'date'])->from(['`user`','`message`'])->where('`user`.id = `message`.id_user AND id_addressee = '.$id.' AND id_user = '.Yii::$app->user->id)->orderBy('date')->all();
in view I make a selection like this:
<?php foreach($messages as $mess): ?>
<tr>
<td>
<?= Html::encode("{$mess->user->name}") ?>
</td>
<td>
<?= Html::encode("{$mess->message}") ?>
</td>
<td>
<?= Html::encode("{$mess->date}") ?>
</td>
</tr><?php endforeach; ?>
一起使用,因此您可以在node_modules
中对符号链接指向真实的文件夹。然后我想IntelliJ将能够解决您的导入。