[英]Enable code completion for node_modules in WebStorm
我是 WebStorm 的新手,也是 Node 開發的新手。 我正在處理一個現有項目,並希望為我的 node_modules 完成代碼。 更具體地講,我用柴和WebStorm似乎沒有找到.have
我的成員expect.to
聲明。
這是我的代碼,簡化了:
var expect = require('chai').expect;
import {Customer} from '../../app/model/Customer.js';
describe('...', function() {
it('...', function() {
var customer = new Customer();
expect(customer).to.have.property('name');
});
});
我在have
調用下看到波浪線,WebStorm 告訴我Unresolved variable have
。
如果我在to
上按 F12,WebStorm 會將我帶到另一個節點模塊 shelljs,但我還沒有導入那個模塊。
這是因為 WebStorm 無法解決 javascript 中的所有問題嗎?
我已經按照文檔為 NodeJS 啟用了編碼幫助,但這並沒有什么區別。
問題是由這些 chai 方法定義的奇怪動態方式引起的。 作為一種解決方法,我建議使用 chai.d.ts:
打開“ Settings | Languages & Frameworks | JavaScript | Libraries
”
單擊“ Download...
”按鈕並選擇“TypeScript 社區存根”
找到“chai”並點擊“ Download and Install
”。
有關更多信息,請參閱http://blog.jetbrains.com/webstorm/2014/07/how-webstorm-works-completion-for-javascript-libraries/ ,“使用 TypeScript 社區存根(TypeScript 定義文件)”
在 WebStorm 2019.3 中,我遵循以下步驟來強制代碼完成(包括自動導入)適用於僅包含純 ES6 模塊的自定義、自行發布的 NPM 包:
{
"name": "testproject",
"version": "1.0.0",
"dependencies": {
"@yourname/yourpackage": "latest"
}
}
在 WebStorm 中,選擇 File > Invalidate Caches / Restart...
要為包內容啟用自動導入,請確保使用包的 JavaScript 文件具有至少一個導出語句。 例如,在以下代碼中,存在導出,因此代碼完成自動導入包函數 isNil():
export function init () {
isNil
}
相比之下,以下代碼不包含導出語句,因此不會自動導入 isNil():
function init () {
isNil
}
對我來說,前面三個步驟都是代碼完成所必需的,以便在 WebStorm 中為我自己的 NPM 包(帶有純 ES6 模塊)工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.