javascript-IntelliJ / Webstorm找不到导入参考

我有以下项目结构:

>根

> src

>脚本

> main.js
> foo.js

在main.js文件中,我像这样导入foo.js:

import 'src/scripts/foo.js'

当我点击上面的import语句并转到导航->声明我收到一条超级有用的消息,提示找不到要去的声明.

这使工作变得非常沮丧,因为编辑器基本上不知道哪个文件会导入其他文件.这意味着我无法使用IDE的有用功能,例如在移动文件时查找参考,查找用法等.

如果我将import语句更改为相对的,它将完全起作用:

import './foo.js'

但是,我们正在努力争取绝对进口,即a habit we picked up from writing python apps.

我遇到了Webstorm: “Cannot Resolve Directory”,这使我有了将src目录标记为Sources Root的想法.完成之后,我可以将main.js中的import语句更改为

import '/scripts/foo.js' //notice the leading forward slash

好吧,这会好一点,因为现在我至少可以导航->声明,但是它不是理想的,因为现在我无法将src下的任何目录标记为测试,资源等.

那么,为什么IntelliJ / webstorm很难做到这一点?

解决方法:

我非常建议不要在JavaScript代码中使用这种导入样式.相对路径虽然可能可行,但它是所有NodeJS代码中的事实上的标准,并且实际上已经扩展到使用模块系统的所有JS代码中.

在当前系统中,任何路径都以开头.是相对的,任何以/开头的路径都是绝对路径,其他任何路径都解析为模块.按照这种逻辑,相对于称为src的依赖项模块,导入“ src / scripts / foo.js”将被解析为./scripts/foo.js.

另请注意,文件扩展名是可选的,通常不使用.

如果您想使用这种样式,并且模块加载器支持它,那么您当然可以这样做,但是我想强调的是,使用非标准方法可能会给您带来痛苦.

上一篇:在phpStorm中指定php.ini


下一篇:使用xdebug的PHPStorm本地调试永远不会捕获并且无法验证