Barış Uşaklı Barış Uşaklı - 1 year ago 284
Node.js Question

Go to definition in visual studio code does not work

I am trying to setup visual studio code for a nodejs project following

I created a jsconfig.json file in my root folder with the contents

"compilerOptions": {
"target": "ES5", //tried ES6 as well
"module": "commonjs"

This file tells VS Code you are writing ES5 compliant code and the module system you want to use is the commonjs framework. With these options set, you can start to write code that references modules in other files. For example, in app.js we require the ./routes/index module, which exports an Express.Router class. If you bring up IntelliSense on routes, you can see the shape of the Router class.

Although it doesn't seem to work with vscode 0.9.1. I don't get intellisense on my own modules. Go to definition doesn't work either.

Is there a way to get go to definition working?

Answer Source

TLDR; if you set your variables/functions directly on the exports object it seems to work.

After trying different ways to write modules I figured out it works if you write your module in a certain way. Here is an example that works.

exports.myFunction = function (a, b) {
    return a + b;

Now if you import this module from another file you will get intellisense and go to definition will work. However if you write your module like this or any other variation it will not work.

var myModule = {};
myModule.myFunction = function (a,b) {
    return a + b;
exports = myModule;

Filed an issue on the vscode repository.

I will update my answer if this changes.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download