Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript vscode保留动态所需node.js模块的智能感知_Javascript_Node.js_Visual Studio Code_Intellisense - Fatal编程技术网

Javascript vscode保留动态所需node.js模块的智能感知

Javascript vscode保留动态所需node.js模块的智能感知,javascript,node.js,visual-studio-code,intellisense,Javascript,Node.js,Visual Studio Code,Intellisense,为了防止在需要具有require功能的node.js模块时出现较长的相对路径,在我们的组织中,我们使用解析器模块,根据给定的参数和文件夹位置解析到其他模块的路径。例如,而不是: const User = require('../../../common/models/user.js'); 我们做的事情如下: const resolver = require('../../../resolver.js'); const User = resolver.require('user', 'commo

为了防止在需要具有
require
功能的node.js模块时出现较长的相对路径,在我们的组织中,我们使用
解析器
模块,根据给定的参数和文件夹位置解析到其他模块的路径。例如,而不是:

const User = require('../../../common/models/user.js');
我们做的事情如下:

const resolver = require('../../../resolver.js');
const User = resolver.require('user', 'common/models');
这在某种程度上是好的,但这样要求模块会使visual studio代码失去对所需模块的跟踪,无法提供智能感知:无建议、无自动完成、无类型提示等

请注意,此
resolver.require
函数会自动生成路径。VScode足够智能,可以在
c.js
文件中为模块
a.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引擎如何将
解析器.require
调用与.js文件配对?