web-dev-qa-db-ja.com

JSコードインテリジェンスがNode.jsプロジェクトでうまく機能するようにWebStorm / PhpStormプロジェクトを構成するにはどうすればよいですか?

WebStorm/PhpStorm/IDEAには、JavaScript用のコードインテリジェンス機能が多数組み込まれています。ただし、Node.jsアプリケーションを開発する場合、node_modulesからすべてを含めると、「ファイルに移動」などの問題が複雑になります(たとえば、IDEがpackage.jsonフォルダーから数十のnode_modulessを提供することを望まない)。しかし、node_modulesフォルダーを除外すると完全に独自の問題-コードの補完などはありません。

では、WebStormでこれにアプローチする「正しい」方法は何でしょうか。 node_modulesのファイルの一部のみを含める必要がありますか?または、そこからすべてを除外し、どういうわけかプロジェクトまたはグローバルライブラリの概念を使用しますか?

ありがとう。

25
Borek Bernard

これはWebStorm7で修正されています。 http://youtrack.jetbrains.com/issue/WEB-1927 を参照してください。

4
Borek Bernard

UIでこれを行うには(PyCharm 2.7.3からテスト、結果はPhpStorm 6.0.3に表示されます):

JavaScriptライブラリを追加

Add JavaScript Libraries

ファイル→設定
(プロジェクト設定)→JavaScript→ライブラリ

[追加...]→

名前node_modules
Visiblilty:[x]現在のプロジェクト
[添付...]
{プロジェクトのnode_modulesフォルダーを選択}

{bower}の繰り返し

プロジェクトからフォルダを除外
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でテスト済み。

23
fncomp

Node.js統合用のプラグインをダウンロードできます: http://plugins.intellij.net/plugin/?webide&pluginId=6098

2
DanMan

残念ながら、簡単な「正しい」方法はありません。トップレベルのnode_modulesディレクトリ内にあるすべてのnode_modulesディレクトリを除外できます。それは完成をより良くしますが、理想的ではありません。
詳細については、こちらをご覧ください: http://devnet.jetbrains.net/message/5468926

2