我有以下项目结构:的IntelliJ/Webstorm没有找到进口参考
- 根
- SRC
- 脚本
- main.js
- foo.js
- 脚本
- SRC
里面我main.js
文件,我进口foo.js
像这样:
import 'src/scripts/foo.js'
当我点击import语句上方去Navigate -> Declaration
我得到一个超级有用的消息,说Cannot find declaration to go
。
这使得它非常令人沮丧,因为编辑器基本上不知道哪些文件导入了其他文件。这意味着移动文件时,无法使用IDE的等实用功能搜索引用,找到用途等
如果我改变import语句是相对的,它的工作原理完全:
import './foo.js'
但是,我们正在争取绝对进口,a habit we picked up from writing python apps。
我碰到了Webstorm: "Cannot Resolve Directory",这给我的想法mark
我的src
目录为Sources Root
。这样做之后,我可以在main.js
我的import语句改为
import '/scripts/foo.js' //notice the leading forward slash
嗯,这是一个好一点,因为现在我至少可以Navigate -> Declaration
但因为现在我不能标记任何目录下src
它的效果并不理想作为测试,资源等。
那么为什么IntelliJ/webstorm这么做很难呢?
相对路径是JS社区的事实标准,您提出的格式含义是在名为src的模块内找到'scripts/foo.js'。你如何引用你提出的风格的外部模块?对我来说,这似乎是一个很好的例子,其中偏离标准只是以最小的利益来要求问题。 – loganfsmyth
这是一个公平点,我想我不知道/考虑我使用的偏离导入依赖的规范方式的格式。我在github上做了一些动作,你说的对,大多数人都使用相对路径。我相信答案是摆脱绝对路径。如果您在下面提供答案,我会接受它。 –