2012-10-03 63 views
25

在WebStorm/PhpStorm/IDEA中,內置JavaScript的代碼智能功能非常多。但是,在開發Node.js應用程序時,包括來自node_modules的所有內容都會使「導航到文件」(我不明白例如,不想讓IDE爲我提供幾十個package.json個文件夾,例如node_modules文件夾)。但不包括node_modules文件夾完全有它自己的問題 - 沒有代碼完成等。如何配置WebStorm/PhpStorm項目,以便JS代碼智能適用於Node.js項目?

那麼什麼是「正確」的方式來解決這個在WebStorm?我是否應該僅包含node_modules中的部分文件?或者排除一切,並以某種方式使用項目或全球圖書館的概念?

謝謝。

回答

4

這已被固定在WebStorm 7,看http://youtrack.jetbrains.com/issue/WEB-1927

+0

請注意,在WebStorm 7 EAP中對此進行測試後,我發現這不起作用。我提交了[錯誤報告](http://youtrack.jetbrains.com/issue/WEB-8926),JetBrains說它將使用WebStorm 7 EAP build 130.1710。 –

+0

我的副本中也沒有修復。 – Shane

2

不幸的是,沒有簡單的「正確」方法。您可以排除位於頂級node_modules目錄內的所有node_modules目錄。 它會使完成更好,但不理想。
進一步討論在這裏:http://devnet.jetbrains.net/message/5468926

2

您也可以下載Node.js的集成插件:http://plugins.intellij.net/plugin/?webide&pluginId=6098

+0

這就是答案。檢查事件日誌,它會顯示以下消息:檢測到Node.js項目:要將源與相關性分離,請從node_modules文件夾(顯示氣球)中創建「Node.js相關性」JavaScript庫'。 – vaughan

+0

如果你還沒有這個事件,它就像這樣手動完成:open preferences-> Project Settings-> JavaScript-> Libraries。選中「Node.js Globals」。然後突出顯示Node.js Globals,然後單擊「配置」。在打開的窗口中,單擊項目設置 - >庫。點擊中間部分頂部的+。從下拉菜單中選擇JavaScript。瀏覽到node_modules目錄並選擇它。然後打開「選擇根」窗口。只選擇node_modules。如果您的node_modules dir已經包含模塊,您將不得不手動取消選擇所有模塊。點擊確定,直到所有窗口關閉。 –

23

要在UI做到這一點(從PyCharm 2.7.3進行測試,結果顯示在PhpStorm 6.0.3):

添加JavaScript庫

​​

文件→設置
(項目設置)→ JavaScript →庫

[添加...] →

名稱node_modules
Visiblilty:[X]當前項目
[附...]
{選擇項目的node_modules文件夾}

{重複涼亭}

Excl UDE文件夾從Project
Exclude Folder From Project

(項目設置)→項目結構
上的文件夾→右鍵單擊[排除]

從項目的做到這一點。IML文件:
更改項目的.iml以下幾點:

<?xml version="1.0" encoding="UTF-8"?> 
<module type="WEB_MODULE" version="4"> 
    <component name="NewModuleRootManager" inherit-compiler-output="true"> 
    <exclude-output /> 
    <content url="file://$MODULE_DIR$"> 
     <excludeFolder url="file://$MODULE_DIR$/bower_components" /> 
     <excludeFolder url="file://$MODULE_DIR$/node_modules" /> 
    </content> 
    <orderEntry type="inheritedJdk" /> 
    <orderEntry type="sourceFolder" forTests="false" /> 
    <orderEntry type="library" name="node_modules" level="application" /> 
    <orderEntry type="library" name="bower_components" level="application" /> 
    </component> 
</module> 

引起排除node_modules和bower_components,但使它們可用於完成和庫搜索

在PyCharm,的IntelliJ測試的編輯器, WebStorm。

相關問題