WebStorm自定义源根源

时间:2018-02-28 11:09:13

标签: node.js webstorm require node-modules

我正在使用WebStorm 2017.3进行Node.JS开发,我对源根有疑问。

我使用app-module-path来减少require语句中文件之间的相对路径数量,以摆脱require('../../../utils/common/stuff')之类的内容。我所做的是,在我的应用程序的第一行,我打电话

require('app-module-path').addPath(__dirname);

如果require('src/utils/common/stuff')文件夹位于添加到src的路径的正下方,则可以执行app-module-path之类的操作。

但是,在使用这些自定义源根时,虽然代码本身有效,但WebStorm似乎无法解析所需的文件。让我们说我有这个结构:

app.js
node_modules
  |- some_module
       |- xyz.js     
src
  |- routes
       |- foo.js
       |- bar.js
  |- utils
       |- stuff.js

WebStorm当然可以成功解决以下问题"正常"需要来自foo.js的声明:

require('./bar')
require('../utils/stuff')
require('some_module/xyz')

前两个当然是相对的,最后一个是因为node_modules是源根(或任何使用的术语)。

如果我现在将根路径添加到app-module-path,我的所有文件都可以成功执行:

require('src/utils/stuff')

......我认为看起来比无穷无尽的亲戚../../../../更好看。但是,虽然代码本身工作正常,因为相对于根文件夹找到src/utils/stuff,IDE无法解析该文件,这意味着我所需的对象/函数变为灰色而不是紫色/黄色,我无法按Ctrl +单击在其中的任何符号或使用任何其他IDE好东西,这是非常烦人的。

我已经尝试将目录标记为"资源根源" ,但这并没有任何区别;绝对路径所需的文件仍然无法相对于资源根进行解析。基本上我所追求的是能够将其他文件夹配置为node_modules的行为,并且在Directories设置中,node_modules被标记为"已排除&#34 ;所以它肯定必须是一个完全独立的设置,控制哪些文件夹被用作"需要根文件夹"或者"需要搜索路径"。

我还尝试过从<root>/node_modules/src<root>/src的符号链接,这样就可以在require语句中按Ctrl +单击实际文件路径'src/utils/stuff' ,它仍然无法解析所需的对象,并且还会导致WebStorm发出关于未在package.json中列出的模块的警告(当然,这是正确的)。

有没有办法用额外的&#34;要求根文件夹配置WebStorm&#34;?或者是否有比app-module-path更好的方法来摆脱相对路径地狱&#34;在仍然保留WebStorm解析/索引功能的require语句中?

0 个答案:

没有答案