转到定义在Visual Studio代码不起作用
我正在尝试为https://code.visualstudio.com/docs/languages/javascript设置一个nodejs项目的visual studio代码
我在内容的根文件夹中创build了一个jsconfig.json文件
{ "compilerOptions": { "target": "ES5", //tried ES6 as well "module": "commonjs" } }
这个文件告诉VS Code您正在编写符合ES5的代码,您要使用的模块系统是commonjs框架。 通过设置这些选项,您可以开始编写在其他文件中引用模块的代码。 例如,在app.js中,我们需要导出Express.Router类的./routes/index模块。 如果您在路由上显示智能感知,您可以看到路由器类的形状。
虽然它似乎不适用于vscode 0.9.1。 我自己的模块上没有智能感知。 去定义也行不通。
https://code.visualstudio.com/docs/runtimes/nodejs#_great-code-editing-experiences
有没有办法去定义工作?
TLDR; 如果你直接在exports
对象上设置你的variables/函数,它似乎工作。
在尝试用不同的方式来编写模块之后,我发现如果以某种方式编写模块,它就会起作用。 这是一个有效的例子。
exports.myFunction = function (a, b) { return a + b; };
现在,如果您从另一个文件导入此模块,您将获得智能感知,并进入定义将工作。 但是,如果你写这样的模块或其他任何变化,它将无法正常工作。
var myModule = {}; myModule.myFunction = function (a,b) { return a + b; }; exports = myModule;
在vscode存储库上提交了一个问题。
https://github.com/Microsoft/vscode/issues/15004#issuecomment-258980327
如果这个变化,我会更新我的答案。