2015-10-18 23 views
9

Tôi cố gắng để thiết lập đang visual studio cho một dự án nodejs sau https://code.visualstudio.com/docs/languages/javascriptTới nét trong mã visual studio không hoạt động

Tôi tạo ra một tập tin jsconfig.json trong thư mục gốc của tôi với những nội dung

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

Tệp này cho biết Mã VS bạn đang viết mã tuân thủ ES5 và hệ thống mô-đun bạn muốn sử dụng là khung công tác chung. Với các tùy chọn này, bạn có thể bắt đầu viết mã tham chiếu đến các mô-đun trong các tệp khác. Ví dụ, trong app.js chúng ta yêu cầu module ./routes/index, xuất ra một lớp Express.Router. Nếu bạn đưa lên IntelliSense trên các tuyến đường, bạn có thể thấy hình dạng của lớp Router.

Mặc dù nó dường như không hoạt động với vscode 0.9.1. Tôi không nhận được intellisense trên các mô-đun của riêng tôi. Đi đến định nghĩa không hoạt động.

https://code.visualstudio.com/docs/runtimes/nodejs#_great-code-editing-experiences

Có cách nào để có được đi làm việc nghĩa?

+0

Lưu ý: bạn có cân nhắc sử dụng Typecript không? – zlumer

+0

Nó là một dự án mã nguồn mở được viết bằng javascript https://github.com/NodeBB/NodeBB –

+1

Tôi không thể đi đến định nghĩa để làm việc, hoặc, tôi đang thử với C# files/project –

Trả lời

1

TLDR; nếu bạn đặt các biến/hàm của mình trực tiếp trên đối tượng exports thì có vẻ như nó hoạt động.


Sau khi thử các cách khác nhau để viết mô-đun, tôi đã tìm ra nó hoạt động nếu bạn viết mô-đun theo một cách nhất định. Đây là một ví dụ hoạt động.

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

Bây giờ, nếu bạn nhập mô-đun này từ tệp khác, bạn sẽ nhận được intellisense và đi đến định nghĩa sẽ hoạt động. Tuy nhiên nếu bạn viết mô-đun của bạn như thế này hoặc bất kỳ biến thể nào khác, nó sẽ không hoạt động.

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

Đã giải quyết sự cố trên kho lưu trữ vscode.

https://github.com/Microsoft/vscode/issues/15004#issuecomment-258980327

tôi sẽ cập nhật câu trả lời của tôi nếu điều này thay đổi.

Các vấn đề liên quan