为了在需要具有require
功能的node.js模块时防止长的相对路径,在我们的组织中,我们使用resolver
模块根据给定的参数和文件夹解析到其他模块的路径位置。例如,而不是:
const User = require('../../../common/models/user.js');
我们做的事情如下:
const resolver = require('../../../resolver.js');
const User = resolver.require('user', 'common/models');
这在某种程度上是好的,但是这样需要模块会使 visual studio code 失去对所需模块的跟踪,无法提供智能感知:没有建议,没有自动完成,没有类型提示等
请注意,此resolver.require
函数会以dinamically方式生成路径。 VScode非常智能,可以在a.js
文件中为模块c.js
提供智能感知:
const b = require('...path-to-b');
const a = b.requireA(); //const a has intellisense
给出一个b.js
模块:
exports.requireA = function(){return require(path_to_a.js)}
但是,如果这样的resolver.require
函数从参数变量生成路径,它将失去对require模块的跟踪,这种情况就是这样。
经过一番研究后,我发现无法解决问题... 也许有一种方法可以通知intellisense引擎如何将我们的resolver.require
调用与.js配对文件吗