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. Use the tool window to run npm scripts.

As soon as you invoke npm, it starts building a tree of scripts defined within the scripts property of the package.json file on which it was invoked. If you have several package.json files in your project, you can build a separate script tree for each of them and run scripts without abandoning the previously built trees. Each tree is shown under a separate node.

Building a Tree of npm Scripts

To build a tree of scripts, do one of the following:

Select the required package.json file in the Project tool window or open it in the editor and choose Show npm Scripts on the context menu.

In the npm tool window, click on the toolbar and choose the required package.json file from the list. PyCharm 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 on the toolbar.

To sort the scripts in a tree by their names Click on the toolbar, choose Sort by on the menu, and then choose Name. By default, a tree shows the scripts in the order in which they are defined in package.json (option Definition order).

Running npm Scripts

To run a script Double click the required script. Alternatively select it in the tree and press Enter or choose Run <script name> on the context menu.

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.

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.

Toolbar

Item

Tooltip

Description

Add package.json

Click this button to have a tree of scripts for another package.json file built. Choose the required package.json file from the pop-up list. PyCharm adds a new node and builds a tree of scripts under it it.

Remove package.json

Click this button to remove the tree of scripts under the selected node.

Reload scripts

Click this button to have the tree of scripts under the selected node re-built. You may need a tree re-built after updating the corresponding package.json file because npm does not apply changes to trees on the fly.

Collapse all

Click this button to hide all the scripts trees and have only package.json nodes displayed.

Click this button to configure the current view and to change the viewing modes of the tool window, see Tool Windows Viewing Modes for details. Note that most of the menu items are options that you can turn on or off. An option which is on has a check mark to the left of its name. The npm-specific options are:

Sort by: choose this menu item to configure the order in which scripts are shown in trees. Click on the toolbar, choose Sort by on the menu, and then choose Name. By default, a tree shows the scripts in the order in which they are defined in package.json (option Definition order).

Hide

Click this button to hide the tool window. To have it displayed again, choose View | Tool Windows | Grunt on the main menu. The tool window appears again showing all the previously built trees of tasks.

Context Menu of a Tree

Item

Description

npm Settings

Choose this menu item to open the npm Settings dialog box and view or edit the Node.js configuration

Jump to Source

Choose this menu item to open the package.json file for which the current tree is built.

Reload scripts

Choose this menu item to have the tree of scripts under the selected node re-built.

Copy Path

Choose this menu item to save the path to the package.json file according to which the current tree was built to the clipboard.

Remove package.json

Choose this menu item to remove the tree of scripts under the selected node.

Context Menu of a Script

Item

Description

Run <script name>

Choose this menu item to run the selected script.

Edit <script name> settings

Choose this menu item to open the Run/Debug Configuration dialog box and edit the predefined settings for the selected script.

Jump to Source

Choose this menu item to open the package.json file for which the current tree is built and navigate to the definition of the selected script.