I'm using WebStorm as the IDE.
Here's my folder structure and express.js insalled:
But my sample code is not aware of the require keyword:
var express = require('express');
var app = express();
app.listen(1337, function(){
console.log("ready");
});
Update
Per Darin's answer Here's my package.json file which now sits in the root of the Website folder:
{
"name": "MyTestSite.com",
"version": "0.0.1",
"description": "A Website",
"main": "test.js",
"directories": {
"test": "tests"
},
"dependencies": {
"express": "^4.11.2"
},
"devDependencies": {},
"scripts": {
"test": "n/a"
},
"repository": {
"type": "git",
"url": "https://github.com/n/a"
},
"keywords": [
"express"
],
"author": "My Name",
"license": "n/a",
"bugs": {
"url": "https://github.com/n/a/issues"
},
"homepage": "https://github.com/n/a"
}
This was created with npm init. I don't think I need all that crap in there so now I just have:
{
"name": "MyTestSite.com",
"version": "0.0.1",
"description": "A Website",
"main": "test.js",
"directories": {
"test": "tests"
},
"dependencies": {
"express": "^4.11.2"
}
}
I must have something malformed here...WebStorm still doesn't recognize the require keyword.
require is a keyword for npm isn't it?
In Webstorm, there are three places in your settings (ctrl-alt-s
) where you can update settings for Node.js projects.
Settings: Javascript Libraries
First, in Javascript | Libraries
you can specify that Node libraries should be loaded. Your set of libraries may look different than this, but it should be pretty close...or, if needed, you can add the libraries so that your flavor (node, io, whatever) shows up.
JSHint
Second, if you have JSHint enabled, you should also enable the Node.js environment so that JSHint acts appropriately.
Nodejs and NPM Settings
You can (should) also set the path to your node executable. Webstorm will also detect your globally installed modules, too, and show you if your versions are up-to-date.
The Official Docs
Finally, this reference link contains much more information about WebStorm and Node: JetBrains Webstorm -- Nodejs Docs
Under Preferences > Languages & Frameworks > Node.js and NPM, make sure "Node.js Core library is enabled" is enabled.
Under Settings > Languages & Frameworks > Node.js and NPM
make sure to check Index internal node modules
. After it's done indexing, it will recognize the require keyword.
Make sure that you have a package.json
file in the root of your website.
To solve these problems on the new Webstorm versions, you need to enable the Coding assistance for Node.js.
To do this, go on the Settings
> Languages & Frameworks
> Node.js and NPM
and click on the Coding assistance for Node.js
option, and then click OK to save:
This will solve all Node.js unresolved variables and functions.
Update
On the new Webstorm versions, just going above error and clicking in More Actions...
(or ALT+ENTER) and selecting
Enable Node.js coding assistance will solve this.