2015-10-18 139 views
9

我想安裝Visual Studio代碼爲以下https://code.visualstudio.com/docs/languages/javascript轉到Visual Studio代碼定義不起作用

我創建了一個jsconfig.json文件在我的根文件夾內容的項目的NodeJS

{ 
    "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

有沒有辦法讓去定義的工作?

+0

附註:您是否考慮過使用Typescript? – zlumer

+0

這是一個用JavaScript編寫的開源項目https://github.com/NodeBB/NodeBB –

+1

我不能去定義工作要麼,我試圖與C#文件/項目 –

回答

1

TLDR;如果你直接在exports對象上設置你的變量/函數,它似乎工作。


在嘗試了不同的寫模塊的方法之後,我發現如果以特定的方式編寫模塊,它會起作用。這是一個有效的例子。

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

我會更新我的答案,如果這個改變。

相關問題