如何配置WebStorm / PhpStorm项目,以便JS代码智能适用于Node.js项目?

时间:2012-10-03 09:27:26

标签: node.js intellij-idea phpstorm webstorm

在WebStorm / PhpStorm / IDEA中,内置了JavaScript的代码智能功能相当多。但是,在开发Node.js应用程序时,包括来自node_modules的所有内容都会使问题复杂化,例如&#34 ;导航到文件" (例如,我不希望IDE从package.json文件夹中提供数十node_modules秒的内容。但是排除node_modules文件夹完全有其自身的问题 - 没有代码完成等。

那么"对"是什么?在WebStorm中解决这个问题的方法?我应该只包含node_modules中的部分文件吗?或者从那里排除所有内容并以某种方式使用项目或全局库的概念?

感谢。

4 个答案:

答案 0 :(得分:23)

要在UI中执行此操作(从PyCharm 2.7.3测试,结果显示在PhpStorm 6.0.3中):

添加JavaScript库

Add JavaScript Libraries

文件→设置
(项目设置)→JavaScript→库

[添加...]→

姓名node_modules
Visiblilty :[x]当前项目
[附...]
{select project的 node_modules 文件夹}

{重复凉亭}

从项目中排除文件夹
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中测试。

答案 1 :(得分:4)

这已在WebStorm 7中修复,请参阅http://youtrack.jetbrains.com/issue/WEB-1927

答案 2 :(得分:2)

不幸的是,没有简单的“正确”方式。您可以排除位于顶级node_modules目录中的所有node_modules目录。 它会使完成更好,但不理想 进一步的讨论在这里:http://devnet.jetbrains.net/message/5468926

答案 3 :(得分:2)

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