Reputation: 54507
I would like to use nodemon from within the WebStorm IDE (version 7). Nodemon watches one or more files in my source folder and restarts the node process (an Express server in this case), when one of the source files changes.
How do I configure WebStorm to use nodemon in a Run Configuration, so that the node process is automatically restarted?
Without nodemon, I use the following configuration in WebStorm, but have to restart the node process whenever I change something in the source file:
/usr/local/bin/node
/Users/foo/test
server.js
This results in a Run Configuration that runs node server.js
in the specified directory.
From command line, I can use the following command to use nodemon to watch for file changes: nodemon server.js
in the project directory.
How do I need to change the WebStorm configuration so that it also uses nodemon?
Upvotes: 94
Views: 44884
Reputation: 619
Add manual watcher in project package.json
"scripts": {
"watch": "nodemon app.js" // Replace app.js
with your main file
}
Then run
npm run watch
Upvotes: 0
Reputation: 61
The simple way that I found is:
npm install -g nodemon
Upvotes: 0
Reputation: 3269
It looks like the workaround with --exec
isn't necessary anymore, at least when using the newest version of nodemon and Webstorm 7 or 8.
All you have to do is specify your path to nodemon by obtaining its path with running which nodemon
in your console (e.g. /usr/local/bin/nodemon
) under "Node parameters":
@Bela Clark, thanks for confirming.
You may NOT have nodemon
exists from which nodemon
command, then you should have it in your package.json ie nodemon
be installed at :project_dir/node_modules/.bin/nodemon
Then from Webstorm 's run/debug config, set Node parameters
to be
:path_to_project_dir/node_modules/.bin/nodemon
You should save the debug/run config to file so your teammates can also easily debug/run your nodejs app like you
This will save the config into some .xml file, sample as below
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="index.js" type="NodeJSConfigurationType" path-to-node="$USER_HOME$/.nvm/versions/node/v19.4.0/bin/node" nameIsGenerated="true" node-parameters="../node_modules/.bin/nodemon" path-to-js-file="index.js" working-dir="$PROJECT_DIR$/nodejs27/node27_sequelize_apiapp/src">
<method v="2" />
</configuration>
</component>
Upvotes: 163
Reputation: 4892
This is how I am running
Installed nodemon package
npm install -g nodemon # OR using yarn: yarn global add nodemon
From Webstorm terminal, run
nodemon index.js
This is how it will show running in terminal
Upvotes: 0
Reputation: 7752
This is the only thing that worked for me:
For me this worked for debugging / breakpoints without issues or additional headache.
Upvotes: 5
Reputation: 21
I have a development in mac and as OdkoPP indicates I made it work
"scripts": {
"build": "tsc",
"dev": "nodemon src/index.ts --exec ts-node"
},
Upvotes: 1
Reputation: 492
Just add new script to package.json
called nodemon (or choose your own name)
"scripts": {
...
"nodemon": "nodemon ./bin/www"
}
Then go to Run/Debug Configuration and add npm configuration. Set
Upvotes: 2
Reputation: 989
In case you've installed nodemon like a global library, just set in node parameters:
C:\Users\${yourUser}\AppData\Roaming\npm\node_modules\nodemon\bin\nodemon.js
Upvotes: 5
Reputation: 2343
Here is a fix for an error I was getting...
If you are using a Windows + NodeJS + nodemon. With an IntelliJ - Run Configuration.
ERROR: starting inspector on failed: address already in use
When I use nodemon version 1.19.1, I get the error. When I use nodemon version 1.18.11, it works!
Good luck...
Upvotes: 0
Reputation: 3078
I'm on Windows and for me didn't worked with nodemon (no idea why), but someone from Jetbrains suggested to try with supervisor:
I installed supervisor: npm install supervisor -g
Then find where is supervisor
installed, for me was in:
C:\Users\AlinC\AppData\Roaming\npm\node_modules\supervisor\lib\cli-wrapper.js –no-restart-on error
I went back to Intellij: edit configurations -> node parameters -> and added: C:\Users\AlinC\AppData\Roaming\npm\node_modules\supervisor\lib\cli-wrapper.js –no-restart-on error
Upvotes: 17
Reputation: 930
Script in package.json: "start": "nodemon --inspect -r babel-register src",
First pic: Run debug and it will start
Second pic: attaching to existing running node
Upvotes: 0
Reputation: 1246
You can also make it work with nvm and debugging still works.
Tested with Node.js 8.1.0 and Webstorm 2017.2
First make sure you are on the right version (in my case v8.1.0) and install nodemon globally -
nvm use v8.1.0
npm install -g nodemon
Then, open Run/Debug configurations and create a new one with the correct node interpreter.
Node parameters should be:
MAC
/Users/[YOUR_USER]/.nvm/versions/node/v8.1.0/bin/nodemon --inspect=3001
LINUX
/usr/local/nvm/versions/node/v8.1.0/bin/nodemon --inspect=3001
Save and debug respponsibally :)
Upvotes: 5
Reputation: 1020
npm install -g nodemon
1* goto run->Edit Configurations->Press'+' at left corner and choose Node.js
2* Select Node.js and Press '+'
3* Name as Nodemon, add path in javaScript file: C:\Users\Your_User_Name\AppData\Roaming\npm\node_modules\nodemon\bin\nodemon.js
4* Click Apply and Ok
5* Run the Nodemon
Upvotes: 0
Reputation: 2719
For those interested for the solution in Windows 10, here is my configuration. It does not show "Terminate Batch" thing and works perfectly.
You press debug ONCE and than you can save change files whatever and the server will restart in debug mode. All brakepoints are working perfectly
Upvotes: 17
Reputation: 101
For windows users set:
Node Interpreter: Path of the node.exe i.e. c:\program files\node\node.exe
Node parameter: C:\Users\YOURUSER\AppData\Roaming\npm\node_modules\nodemon\bin\nodemon.js
Upvotes: 10
Reputation: 5950
Per @bernhardw comment, as this was the answer for me -
All is needed is /usr/local/bin/nodemon
under node parameters
Works for run and debug as it restarts upon changes, but debugging with breakpoint does not work.
Bonus: add -e for more extension e.g /usr/local/bin/nodemon -e js,html,jade
(osx 10.10.5, rubymine 7.1.4)
HTH
Upvotes: 0
Reputation: 1874
This is the Windows solution
You can just use the nodemon.cmd instead of node directly like :
Node interpreter : C:\MyPath\To\nodemon.cmd
Node parameters : /*Empty for me*/
Node WorkingDirectoy : C:\Users\MyUserName\Desktop\DirectoryContainingMyIndex.js
JavaScriptFile : app\index.js /*or just index.js depending on your config*/
and then :
Hope it will help you.
Upvotes: 40
Reputation: 100386
some of these answers appear to only work for Mac. For Windows, this configuration seems to work (my user name on Windows 7 is denman).
main.js is the starting point file for my Express application.
Upvotes: 1
Reputation: 338
Here's the configuration that works for me on Windows 7 + WebStorm 8.0.4. If I put nodemon.cmd as the node interpreter I kept getting "Terminate batch job (Y/N)?".
Upvotes: 4
Reputation: 179
Only change the Path to Node to the nodemon.cmd, in my case (C:\Users\Rohit Taneja\AppData\Roaming\npm\nodemon.cmd), you'll also get this path after your installion of nodemon finishes.
You're good to go
Upvotes: 1
Reputation: 54507
To install nodemon, use the following (if required, use sudo to run the installation with root privileges:
npm install -g nodemon
This will install nodemon globally on your machine.
Then, in your WebStorm Run Configuration, add the following, leaving everything else unchanged:
/usr/local/bin/nodemon --exec /usr/local/bin/node
This will instruct the node interpreter to execute the nodemon
script using the following command line: node /usr/local/bin/nodemon --exec /usr/local/bin/node server.js
.
The --exec
part is important, as the execution will fail with the following error:
/usr/local/bin/node /usr/local/bin/nodemon server.js
4 Oct 13:56:50 - [nodemon] v0.7.10
4 Oct 13:56:50 - [nodemon] to restart at any time, enter `rs`
4 Oct 13:56:50 - [nodemon] watching: /Users/foo/test
execvp(): No such file or directory
4 Oct 13:56:50 - [nodemon] starting `node server.js`
4 Oct 13:56:50 - [nodemon] exception in nodemon killing node
Error: spawn ENOENT
at errnoException (child_process.js:980:11)
at Process.ChildProcess._handle.onexit (child_process.js:771:34)
The error seems to be caused by WebStorm not seeing the node
executable on its path.
The fix for this is to specify the location to the node
executable using the --exec /usr/local/bin/node
parameter.
Using these settings, nodemon works fine when run from a WebStorm Run Configuration.
The same trick might have to be used with some of the tools similar to nodemon, e.g. node-supervisor.
Upvotes: 20