IntelliJ IDEA 2017.2 Help

Run/Debug Configuration: Node.js

This feature is supported in the Ultimate edition only.

The following is only valid when Node.js Plugin is installed and enabled!

In this dialog box, create configurations for running and debugging of Node.js applications locally. "Locally" in the current context means that IntelliJ IDEA itself starts the Node.js runtime environment installed on your computer, whereupon initiates a running or debugging session.

On this page:

Getting access to the Run/Debug Configuration: Node.js dialog

  1. Install and enable the Node.js plugin. The plugin is not bundled with IntelliJ IDEA, but it can be installed from the JetBrains plugin repository as described in Installing, Updating and Uninstalling Repository Plugins and Enabling and Disabling Plugins.
  2. Download and install the Node.js runtime environment that contains the Node Package Manager(npm).

Configuration tab

ItemDescription
Node Interpreter In this field,

specify the Node.js interpreter to use. Choose one of the configured interpreters or click browseButton.png and configure a new one as described in Configuring Node.js Interpreters.

If you have appointed one of the installations as default, the field displays the path to its executable file.

Node Parameters In this text box, type the Node.js-specific command line options to be passed to the NodeJS executable file. The most common options are:
--require coffee-script/register Specify this parameter to have CoffeeScript files compiled into JavaScript on the fly during run. This mode requires that the register.js file, which is a part of the coffee-script package, should be located inside the project. Therefore you need to install the coffee-script package on the Node.js page locally, as described in NPM.
--inspect Specify this parameter when you are using Node.js v7 for Chrome Debugging Protocol support. Otherwise, by default the debug process will use V8 Debugging Protocol.

For a full list, see Node.js command line options.

Working Directory In this field, specify the working directory of the application. All references in the starting Node.js application file, for example, imports, will be resolved relative to this folder, unless such references use full paths.

By default, the field shows the project root folder. To change this predefined setting, choose the desired folder from the drop-down list, or type the path manually, or click the Browse button browseButton.png and select the location in the dialog box, that opens.

JavaScript File In this field, specify the full path to the file to start running or debugging the application from.

If you are going to debug CoffeeScript, specify the path to the generated JavaScript file with source maps. The file can be generated externally or through compilation using file watchers. For more details, seeCompiling CoffeeScript to JavaScript.

Application Parameters In this text box, type the Node.js-specific arguments to be passed to the application start file through the process.argv array.
Environment Variables In this field, specify the environment variables for the Node.js executable file, if applicable. Click the Browse button browseButton.png to the right of the field and configure a list of variables in the Environment Variables dialog box, that opens:
  • To define a new variable, click the Add toolbar button add.png and specify the variable name and value.
  • To discard a variable definition, select it in the list and click the Delete toolbar button delete.png.
  • Click OK, when ready

The definitions of variables are displayed in the Environment variables read-only field with semicolons as separators. The acceptable variables are:

  • NODE_PATH: A :-separated list of directories prefixed to the module search path.
  • NODE_MODULE_CONTEXTS: Set to 1 to load modules in their own global contexts.
  • NODE_DISABLE_COLORS: Set to 1 to disable colors in the REPL.
Docker container settings In this field, type the settings manually, or click browseButton next to the field and specify the settings in the Edit Docker Container Settings dialog that opens, or select the Auto configure checkbox to have IntelliJ IDEA do it automatically.

The field is available only when a remote Node.js interpreter running on a Docker container is chosen.

Auto configuration Select this check box to have IntelliJ IDEA configure the container settings. In the Automatic configuration mode:
  • IntelliJ IDEA creates a new image and installs the npm modules in it.

    IntelliJ IDEA copies package.json to the /tmp/project_modules folder in the image, runs npm install, and then copies the modules to the project folder in the container. Consequently, changing package.json in the project results in re-building the image.

  • IntelliJ IDEA runs the container with the new image, binds your project folder to /opt/project folder in the container to ensure synchronization on update, and maps /opt/project/node_modules to the OS temporary directory.

With automatic configuration, you still need to bind the port that your application is running on with the port of the container. Those exposed ports are available on the Docker host’s IP address (by default 192.168.99.100). Such binding is required when you debug the client side of a Node.js Express application so you need to open the browser from your computer and access the application at the host of the container through the port specified in the application.

  1. Click browseButton next to the Docker Container Settings field.
  2. In the Edit Docker Container Settings dialog that opens, expand the Port bindings area.
  3. Click new. The Port bindings dialog box opens. In this dialog box, map the ports as follows:
    • In the Container port text box, type the port specified in your application.
    • In the Host port text box, type the port through which you want to open the application in the browser from your computer.
    • In the Host IP text box, type the IP address of the Docker's host, the default IP is 192.168.99.100. The host is specified in the API URL field on the Docker page of the Settings / Preferences Dialog.
    • Click OK to return to the Edit Docker Container Settings dialog where the new port mapping is added to the list.
  4. Click OK to return to the Run/Debug Configuration: Node.js dialog.

The field is available only when a remote Node.js interpreter running on a Docker container is chosen.

Browser / Live Edit tab

In this tab, configure the behaviour of the browser and enable debugging the client-side code of the application. This functionality is provided through a JavaScript Debug run configuration, so technically, IntelliJ IDEA creates separate run configurations for the server-side and the client-side code, but you specify all your settings in one dedicated Node.js run configuration.

ItemDescription
Open browser In the text box in this area, specify the URL address to open the application at. If you select the After Launch check box, the browser will open this page automatically after the application starts. Alternatively you can view the same result by opening the page with this URL address in the browser of your choice manually.
After launch Select this check box to have a browser started automatically after a debugging session is launched. Specify the browser to use in the drop-down list next to the check box.
  • To use the system default browser, choose Default.
  • To use a custom browser, choose it from the list. Note that Live Edit is fully supported only in Chrome.
  • To configure browsers, click the Browse button browseButton and adjust the settings in the Web Browsers dialog box that opens. For more information, see Configuring Browsers.
with JavaScript debugger Select this check box to enable debugging the client-side code in the selected browser.

V8 Profiling tab

ItemDescription
Record CPU profiling info Select this check box to start logging the CPU profiling data when the application is launched. The controls in the area below become enabled. Specify the following:
  • Log folder: in this field, specify the folder to store recorded logs in. Profiling data are stored in V8 log files isolate-<session number>.
  • One log file for isolates:
  • Tick package: in this field, specify the tick package to use. Choose the relevant package from the Tick package drop-down list or click the browseButton button next to it and choose the package in the dialog box that opens.
  • Gnuplot package: in this field, specify the location of the Gnuplot executable file to explore a timeline view that shows where V8 is spending time.
Allow taking heap snapshots Select this check box if you are going to run memory profiling. The controls in the area below become enabled. Specify the following:
  • V8 profiler package: in this field, specify the v8-profiler package to use. Choose the relevant package from the v8-profiler package drop-down list or click the browseButton button next to it and choose the package in the dialog box that opens.
  • Communication port: in this field, specify the port through which IntelliJ IDEA communicates with the profiler, namely, sends a command to take a snapshot when you click the Take Heap Snapshot button ws v8 profiling take snapshot on the toolbar of the Run tool window.

Toolbar

ItemShortcutDescription
add Alt+Insert Click this button to add a new configuration to the list.
delete Alt+Delete Click this button to remove the selected configuration from the list.
copy Ctrl+D Click this button to create a copy of the selected configuration.
settings Edit defaultsClick this button to edit the default configuration templates. The defaults are used for newly created configurations.
arrowUp or arrowDown Alt+Up or Alt+Down Use these buttons to move the selected configuration or folder up and down in the list.

The order of configurations or folders in the list defines the order in which configurations appear in the Run/Debug drop-down list on the main toolbar.

folder Move into new folder / Create new folder Use this button to create a new folder.

If one or more run/debug configurations are in focus, the selected run/debug configurations are automatically moved to the newly created folder. If only a category is in focus, an empty folder is created.

Move run/debug configurations to a folder using drag-and-drop, or the arrowUp arrowDown buttons.

sortAlphabetically Sort configurations Click this button to sort configurations in alphabetical order.

Common options

ItemDescription
NameIn this text box, specify the name of the current run/debug configuration. This field does not appear for the default run/debug configurations.
Defaults This node in the left-hand pane of the dialog box contains the default run/debug configuration settings. Select the desired configuration to change its default settings in the right-hand pane. The defaults are applied to all newly created run/debug configurations.
Share Select this check box to make the run/debug configuration available to other team members.

If the directory-based project format is used, the settings for a run/debug configuration are stored in a separate .xml file in the .idea\runConfigurations folder if the run/debug configuration is shared, or in the .idea\workspace.xml file otherwise.

If the file-based format is used, the settings are stored in the .ipr file for shared configurations, or in the .iws file otherwise.

This check box is not available when editing the run/debug configuration defaults.

Single instance onlyIf this check box is selected, this run/debug configuration cannot be launched more than once.

Every time a new run/debug configuration is launched, IntelliJ IDEA checks the presence of the other instances of the same run/debug configuration, and displays a confirmation dialog box. If you click OK in the confirmation dialog box, the first instance of the runner will be stopped, and the next one will take its place.

This makes sense when the usage of certain resources can cause conflicts, or when launching two run/debug configurations of the same type consumes too much of the CPU and memory resources.

If this check box is not selected, it is possible to launch as many instances of the runner as required. So doing, each runner will start in its own tab of the Run tool window.

Before launchSpecify which tasks must be performed before applying the run/debug configuration. The specified tasks are performed in the order they appear in the list.
ItemKeyboard shortcutDescription
add Alt+Insert Click this icon to add a task to the list. Select the task to be added:
  • Run External tool. Select this option to run an application which is external to IntelliJ IDEA. In the dialog that opens, select the application or applications that should be run. If the necessary application is not defined in IntelliJ IDEA yet, add its definition. For more information, see Configuring Third-Party Tools andExternal Tools.
  • Make. Select this option to have the project or module compiled. The Make Module command will be carried out if a particular module is specified in the run/debug configuration, and the Make Project command otherwise.

    If an error occurs during the compilation, IntelliJ IDEA won't attempt to start the run/debug configuration.

  • Make, no error check. The same as the Make option but IntelliJ IDEA will try to start the run/debug configuration irrespective of the compilation result.
  • Build Artifacts. Select this option to have an artifact or artifacts built. In the dialog that opens, select the artifact or artifacts that should be built.

    See also, Working with Artifacts.

  • Run Another Configuration. Select this option to have another run/debug configuration executed. In the dialog that opens, select the configuration to run.

    This option is available only if you have already at least one run/debug configuration in the current project.

  • Run Ant target. Select this option to have an Ant target run. In the dialog that opens, select the target to be run. For more information, see Ant.
  • Run Grunt task. Select this option to run a Grunt task. In the Grunt task dialog box that opens, specify the Gruntfile.js where the required task is defined, select the task to execute, and specify the arguments to pass to the Grunt tool.

    Specify the location of the Node.js interpreter, the parameters to pass to it, and the path to the grunt-cli package.

  • Run Gulp task. Select this option to run a Grunt task. In the Gulp task dialog box that opens, specify the Gulpfile.js where the required task is defined, select the task to execute, and specify the arguments to pass to the Gulp tool.

    Specify the location of the Node.js interpreter, the parameters to pass to it, and the path to the gulp package.

  • Run npm Script. Select this check box to execute an npm script. 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.

  • Compile TypeScript. Select this option to run the built-in TypeScript compiler and thus make sure that all the changes you made to your TypeScript code are reflected in the generated JavaScript files. In the TypeScript Compile Settings dialog that opens, select or clear the Check errors checkbox to configure the behaviour of the compiler in case any errors are detected:
    • If the Check errors checkbox is selected, the compiler will show all the errors and the run configuration will not start.
    • If the Check errors checkbox is cleared, the compiler will show all the detected errors but the run configuration still will be launched.
  • Generate CoffeeScript Source Maps. Select this option to have the source maps for your CoffeeScript sources generated. In the dialog that opens, specify where your CoffeeScript source files are located. For more information, see CoffeeScript.
  • Run Maven Goal. Select this option to have a Maven goal run. In the dialog that opens, select the goal to be run.

    For more information, see Maven.

  • Run Remote External tool: Add a remote SSH external tool. Refer to the section Remote SSH External Tools for details.
  • Upload files to Remote Host. Select this option to have the application files automatically uploaded to the server according to the default server access configuration. For more information, see Configuring Synchronization with a Web Server and Uploading and Downloading Files.
  • Run Rake task:Add a Rake task to be executed prior to running or debugging. To choose a Rake task, click the browse button browseButton, and select the desired task from the list of available tasks.

    Note that code completion is available here.

    runConfigRakeTask
    To learn more about Rake support, refer to Rake Support section.
  • Run JRuby compiler: choose this option to execute JRuby compiler with the specified target path, compiler process heap size, and command line parameters (if any).
delete Alt+Delete Click this icon to remove the selected task from the list.
edit1 Enter Click this icon to edit the selected task. Make the necessary changes in the dialog that opens.
arrowUp Alt+Up Click this icon to move the selected task one line up in the list.
arrowDown Alt+Down Click this icon to move the selected task one line down in the list.
Show this page Select this check box to have the run/debug configuration settings shown prior to actually starting the run/debug configuration.
Active tool windowSelect this option if you want the Run/Debug tool windows to be activated automatically when you run/debug your application. This option is enabled by default.
Last modified: 29 November 2017

See Also