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