PhpStorm 2017.3 Help

NPM

On this page:

Introduction

A number of tools are started through Node.js, for example, the CoffeeScript, TypeScript, and Less compilers, YUI, UglifyJS, and Closure compressors, Karma test runner, Grunt task runner, etc. The Node Package Manager (npm) is the easiest way to install these tools, the more so that you have to install Node.js anyway.

Depending on the desired location of the tool executable file, choose one of the following methods:

  • Install the tool globally at the PhpStorm level so it can be used in any PhpStorm project.
  • Install the tool in a specific project and thus restrict its use to this project.
  • Install the tool in a project as a development dependency.

In either installation mode, make sure that the parent folder of the tool is added to the PATH variable. This enables you to launch the tool from any folder.

Installing Node.js and Node Package Manager (npm)

  1. Download and install Node.js. The runtime environment is required for two reasons:
    • The tool is started through Node.js.
    • NPM, which is a part of the runtime environment, is also the easiest way to download the tool.

    If you are going to use the command line mode, make sure the path to the parent folder of the Node.js executable file and the path to the npm folder are added to the PATH variable. This enables you to launch the tool and npm from any folder.

  2. Make sure the Node.js plugin is enabled. The plugin is activated by default. If the plugin is disabled, enable it on the Plugins settings page as described in Enabling and Disabling Plugins.

Installing an external tool globally

Global installation makes a tool available at the PhpStorm level so it can be used in any PhpStorm project. Moreover, during installation the parent folder of the tool is automatically added to the PATH variable, which enables you to launch the tool from any folder.

  • Run the installation from the command line in the global mode:
    1. Open the embedded Terminal (View | Tool Windows | Terminal) and switch to the directory where NPM is stored or define a PATH variable for it so it is available from any folder, see Installing NodeJs.
    2. Type the following command at the command prompt:
      npm install -g <tool name>

      The -g key makes the tool run in the global mode. Because the installation is performed through NPM, the tool is installed in the npm folder. Make sure this parent folder is added to the PATH variable. This enables you to launch the tool from any folder.

      For more details on the NPM operation modes, see npm documentation. For more information about installing the tool, see https://npmjs.org/package/.

  • Run NPM from PhpStorm using the Node.js and NPM page of the Settings dialog box.
    1. Open the Settings / Preferences Dialog by pressing Ctrl+Alt+S or by choosing File | Settings for Windows and Linux or PhpStorm | Preferences for macOS, and click Node.js and NPM under Languages & Frameworks.
    2. On the Node.js and NPM page that opens, the Packages area shows all the Node.js-dependent packages that are currently installed on your computer, both at the global and at the project level. Click new.
    3. In the Available Packages dialog box that opens, select the required package to install.
    4. Select the Options checkbox and type -g in the text box next to it.
    5. Optionally specify the product version and click Install Package to start installation.

Installing an external tool in a project

Local installation in a specific project restricts the use of a tool to this project.

  • Run the installation from the command line:
    1. Open the embedded Terminal (View | Tool Windows | Terminal) and switch to the project root folder.
    2. At the command prompt, type npm install <tool name>.
  • Run NPM from PhpStorm using the Node.js and NPM page of the Settings dialog box.
    1. Open the Settings / Preferences Dialog by pressing Ctrl+Alt+S or by choosing File | Settings for Windows and Linux or PhpStorm | Preferences for macOS, and click Node.js and NPM under Languages & Frameworks.
    2. On the Node.js and NPM page that opens, the Packages area shows all the Node.js-dependent packages that are currently installed on your computer, both at the global and at the project level. Click new.
    3. In the Available Packages dialog box that opens, select the required package.
    4. Optionally specify the product version and click Install Package to start installation.

Project level installation is helpful and reliable in template-based projects of the type Node Boilerplate or Node.js Express, which already have the node_modules folder. The latter is important because NPM installs the tool in a node_modules folder. If your project already contains such folder, the tool is installed there.

Projects of other types or empty projects may not have a node_modules folder. In this case npm goes upwards in the folder tree and installs the tool in the first detected node_modules folder. Keep in mind that this detected node_modules folder may be outside your current project root.

Finally, if no node_modules folder is detected in the folder tree either, the folder is created right under the current project root and the tool is installed there.

In either case, make sure that the parent folder of the tool is added to the PATH variable. This enables you to launch the tool from any folder.

Installing an external tool as a development dependency

If a tool is a documentation or a test framework, which are of no need for those who are going to re-use your application, it is helpful to have it excluded from download for the future. This is done by marking the tool as a development dependency, which actually means adding the tool in the devDependencies section of the package.json file.

With PhpStorm, you can have a tool marked as a development dependency right during installation. Do one of the following:

  • Run the installation from the command line:
    1. Launch the built-in Terminal (View | Tool Windows | Terminal).
    2. Switch to the project root folder and at the command prompt type:
      npm install --dev <tool name>
  • Run NPM from PhpStorm using the Node.js and NPM page of the Settings dialog box.
    1. Open the Settings / Preferences Dialog by pressing Ctrl+Alt+S or by choosing File | Settings for Windows and Linux or PhpStorm | Preferences for macOS, and click Node.js and NPM under Languages & Frameworks.
    2. On the Node.js and NPM page that opens, the Packages area shows all the Node.js-dependent packages that are currently installed on your computer, both at the global and at the project level. Click new.
    3. In the Available Packages dialog box that opens, select the package.
    4. Select the Options checkbox and type --dev in the text box next to it.
    5. Optionally specify the product version and click Install Package to start installation.

After installation, a tool is added to the devDependencies section of the package.json file.

Running npm scripts

PhpStorm provides the interface for running npm scripts. npm scripts support involves:

  • Parsing package.json files, recognizing definitions of scripts.
  • Building trees of scripts.
  • Navigation between a script in the tree and its definition in the package.json file.
  • Running and debugging scripts.
  • Configuring the script execution mode and output.

Before you start

  1. Download and install Node.js which contains npm.
  2. Make sure the NodeJS plugin is enabled. The plugin is activated by default. If the plugin is disabled, enable it on the Plugins settings page as described in Enabling and Disabling Plugins.
  3. Create a package.json file with the scripts property containing the definitions of the scripts to run.
  4. To enable debugging of a script, add the $NODE_DEBUG_OPTION to its definition in the package.json file, for example:
    { "name": "application-name", "version": "0.0.1", "scripts": { "main": "node $NODE_DEBUG_OPTION ./app-compiled.js" } }

Scripts are launched in the following 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.

The result of executing a script is displayed in the Run tool window. The tool window shows the npm script output, reports the errors occurred, lists the packages or plugins that have not been found, etc. The name of the last executed script is displayed on the title bar of the tool window.

Building a tree of scripts

  • If the npm tool window is not opened yet, do one of the following:
    • Select the required package.json file in the Project tool window and choose Show npm Scripts on the context menu of the selection.
    • Open the required package.json file in the editor and choose Show npm Scripts on the context menu of the editor.

    In either case, the npm tool window opens showing the scripts tree built according to the selected or opened package.json file.

  • If the npm tool window is already opened, click add_black.png on the toolbar and choose the required package.json file from the list. PhpStorm adds a new node and builds a scripts tree under it. The title of the node shows the path to the package.json file according to which the tree is built.
  • To re-build a tree, switch to the required node and click icon_reload_grunt.png on the toolbar.

By default, the scripts in a tree a listed in the order in which they are defined in package.json (option Definition order). To have them listed in the alphabetic order, click the viewMode.png toolbar button, then choose Sort by on the menu, and then choose Name.

Running npm scripts from the tree of scripts

  • To run a script, do one of the following:

    • Double click the required script in the tree.
    • Select the required script and choose Run <script name> on the context menu of the selection.
    • Select the required script and press Enter.
  • To run several scripts, use the multiselect mode: hold Shift (for adjacent items) or Ctrl (for non-adjacent items) keys and select the required scripts, then choose Run on the context menu of the selection.

Running tasks according to a run configuration

Besides using temporary run configurations that PhpStorm creates automatically, you can create and launch your own npm run configurations.

To create an npm run configuration

  1. Choose Run | Edit Configuration on the main menu.
  2. Click add on the toolbar and select npm from the pop-up list.
  3. In the Run/Debug Configuration: NPM dialog box that opens, specify the name of the run configuration, the npm command line command to execute, the scripts to run (use blank spaces as separators), the location of the package.json file to retrieve the definitions of the scripts from, and the command line arguments to execute the script with.

    Specify the location of the Node executable file and the Node.js-specific options to be passed to this executable file, see Node parameters for details.

    If applicable, specify the environment variables for the Node.js executable file.

To run a script according to a run configuration, select the run configuration from the list on the main tool bar and then choose Run | Run <configuration name> on the main menu or click the Run toolbar button run.png. The output is displayed in the Run tool window.

Running npm scripts automatically

If you have some scripts that you run on a regular basis, you can add the corresponding run configurations to a list of startup tasks. The tasks will be executed automatically on the project start-up.

  1. Open the Settings / Preferences Dialog by pressing Ctrl+Alt+S or by choosing File | Settings for Windows and Linux or PhpStorm | Preferences for macOS, and click Startup Tasks under Tools.
  2. On the Startup Tasks page that opens, click add.png on the toolbar.
  3. From the drop-down list, choose the required npm run configuration. The configuration is added to the list.

    If no applicable configuration is available in the project, click add.png and choose Edit Configurations. Then define a configuration with the required settings in the Run/Debug Configuration: NPM page that opens. When you save the new configuration it is automatically added to the list of startup tasks.

Running a script as a as a before-launch task

  1. Open the Run/Debug Configurations Dialog dialog by choosing Run | Edit Configurations on the main menu, and select the required configuration from the list or create it anew by clicking new and choosing the relevant run configuration type.
  2. In the dialog box that opens, click new in the Before launch area and choose Run npm script from the drop-down list.
  3. In the NPM Script dialog box that opens, specify the package.json file where the required script is defined, select the script to execute, choose the command to apply to it, and specify the arguments to execute the script with.

    Specify the location of the Node.js interpreter and the parameters to pass to it.

Last modified: 3 November 2017

See Also