简体   繁体   中英

How to configure WebStorm / PhpStorm project so that JS code intelligence works well for Node.js projects?

In WebStorm / PhpStorm / IDEA, there are quite a lot of code intelligence feature for JavaScript built in. However, when developing a Node.js application, including everything from node_modules complicates matters with things like "Navigate to file" (I don't want the IDE to offer me tens of package.json s from node_modules folder, for example). But excluding the node_modules folder entirely has its own problems - there is no code completion etc.

So what's the "right" way to approach this in WebStorm? Should I include only some of the files from node_modules ? Or exclude everything from there and somehow use the concept of project or global libraries?

Thanks.

To do this in the UI (tested from PyCharm 2.7.3, result shown in PhpStorm 6.0.3):

Add JavaScript Libraries

添加JavaScript库

File → Settings
(Project Settings) → JavaScript → Libraries

[Add...] →

Name : node_modules
Visiblilty : [x] Current project
[Attach...]
{select project's node_modules folder}

{repeat for bower }

Exclude Folder from Project
从项目中排除文件夹

(Project Settings) → Project Structure
Right-click on folder → [Excluded]

To do this from project's .iml file:
Changing the project's .iml to the following:

<?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>

Caused the editor to exclude node_modules and bower_components, but make them available for completion and library search

Tested in PyCharm, IntelliJ, and WebStorm.

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

Unfortunately there is no easy "right" way. You can exclude all node_modules directories that are located inside top level node_modules directory. It will make completion better, but not ideal.
Further discussion is here: http://devnet.jetbrains.net/message/5468926 .

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM