Create WebStorm run configurations from package.js

2019-01-31 15:00发布

问题:

In my package.json file, I have the following "scripts" configuration.

...
"scripts": {
    "start": "watchify -o lib/index.js -v -d .",
    "build": "browserify . | uglifyjs -cm > lib/index.js",
    "test": "jest"
}
...

This allows me to run npm start, npm build and npm test from the command line.

This is great! But ideally, I would like to be able to run those tasks from within WebStorm using run configurations, due to how convenient the interface is. I have not been able to figure out how to do this.

Is there a way to create my own custom run configurations or automatically generate them from my package.json?

回答1:

you can use Node.js Run configuration for this. For example, for 'npm start':

Working dir: /path/to/your/package.json

JavaScript file: /path/to/global/node_modules/npm/bin/npm-cli.js

Application parameters: run start

To find the global node_modules path from the command line use "npm root -g".

There is no way to auto-create run configurations from files. And the only way to create your own run configuration is developing a plugin - see http://confluence.jetbrains.com/display/IDEADEV/Run+Configurations

Update: since 2016.x, WebStorm provides a special run configuration - npm - for running/debugging NPM scripts. It can be created manually via Edit configurations... dialog, or auto-added by selecting the script in NPM tool window (can be opened from package.json right-click menu).

See https://www.jetbrains.com/help/webstorm/2017.3/running-npm-scripts.html



回答2:

WebStorm and IntelliJ 2016 included support for NPM scripts as part of the NodeJS plugin.

Scripts are launched in four ways:

  • From a tree of scripts in the dedicated NPM Tool Window. The tool window opens when you invoke npm by choosing Show npm Scripts on the context menu of a package.json in the Project tool window or of a package.json opened in the editor.
  • According to a dedicated run configuration, see Run/Debug Configuration: NPM.
  • Automatically, as a start-up task.
  • As a before-launch task, from another run configuration.

For more details check out their documentation.