RubyMine 2018.3 Help

Run/Debug Configuration: Node.js

Run | Edit Configurations | Add New Configuration | Node.js


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

Before you start

  1. Download and install Node.js.

  2. Install the Node.js plugin on the Plugins settings page as described in Managing Plugins.

Configuration tab

Item

Description

Node interpreter

In this field, specify the Node.js interpreter to use. This can be a local or remote Node.js interpreter or a Node.js on Windows Subsystem for Linux. Select an interpreter from the list or click Browse and configure a new one in the dialog that opens.

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:
  • Use --require coffee-script/register 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 and Yarn.

  • Use --inspect 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. By default, the field shows the project root folder.

JavaScript file

In this field, specify the path to the main file of the application that starts it (for example, bin/www for Node.js Express applications).

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, see Debugging CoffeeScript.

Application parameters

In this text box, type the Node.js-specific arguments to be passed to the application on start through the process.argv array.

Environment variables

In this field, specify the environment variables for the Node.js executable file, if applicable. Click Browse 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 Add icons general add svg and specify the variable name and value.

  • To discard a variable definition, select it in the list and click Delete icons general remove svg.

  • 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

Click browseButton to open the dialog and specify the following settings:

  • Disable networking: select this checkbox to have the networking disabled. This corresponds to --net="none", which means that inside a container the external network resources are not available.

  • Network mode: corresponds to the other values of the option --net.
    • bridge is the default value. An IP address will be allocated for container on the bridge’s network and traffic will be routed though this bridge to the container.
      Containers can communicate via their IP addresses by default. To communicate by name, they must be linked.

    • host: use the host's network stack inside the container.

    • container:<name|id>: use the network stack of another container, specified via its name or id.

    Refer to the Network settings documentation for details.

  • Links: Use this section to link the container to be created with the other containers. This is applicable to Network mode = bridge and corresponds to the --link option.

  • Publish all ports: Expose all container ports to the host. This corresponds to the option --publish-all.

  • Port bindings: Specify the list of port bindings. Similar to using the -p option with docker run.

  • Extra hosts: This corresponds to the --add-host option. Refer to the page Managing /etc/hosts for details.

  • Volume bindings: Use this field to specify the bindings between the special folders-volumes and the folders of the computer, where the Docker daemon runs. This corresponds to the -v option.
    See Managing data in containers for details.

  • Environment variables: Use this field to specify the list of environment variables and their values. This corresponds to the -e option. Refer to the page ENV (environment variables) for details.

Click icons actions down to expand the tables. Click icons general add svg, icons general remove svg, or icons actions edit svg to make up the lists.

Auto configuration

Select this checkbox to have RubyMine configure the container settings. In the Automatic configuration mode:
  • RubyMine creates a new image and installs the npm modules in it.

  • RubyMine 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.

Even with automatic configuration, you still need to bind the port on which your application is running 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. In this case, you need to open the browser from your computer and access the application at the container host through the port specified in the application.

To configure port bindings

  1. Click icons general openDisk svg in theDocker Container Settings field and expand the Port bindings area in the Edit Docker Container Settings dialog that opens.

  2. Click icons general add svg and in the Port bindings dialog that opens, 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.

  3. Click OK to return to the Run/Debug Configuration: Node.js dialog.

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, RubyMine 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.

Item

Description

Open browser

In the text box in this area, specify a project HTML file to create a correct URL to this file according to the project root to be started on the built-in web server. For example, if you choose project_root/inner_folder/index.html the resulting URL will be http://localhost:63342/project_root/inner_folder/index.html. 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 Choose the browser to use from the drop-down list next to the After launch checkbox.
  • 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 Browse 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

Item

Description

Record CPU profiling info

Select this checkbox 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 log files isolate-<session number>.

  • One log file for all isolates (V8 instances): select this checkbox to create only one log file (and accordingly one profiling results view) for all V8 instances. Clear the checkbox to create a separate file for each instance. Node.js can create an additional V8 instance, e.g. for a debugging process.

Allow taking heap snapshots

Select this checkbox if you are going to run memory profiling.

Logs tab

In this tab, enable showing information produced by a logging tool like morgan in the Console tab of the Run tool window. See Managing logs when running a Node.js app for details.

Common options

When you edit a run configuration (but not a run configuration template), you can specify the following options for it:

Item

Description

Name

In this text box, specify the name for the run/debug configuration. The name will help you identify the created configuration when you choose to edit it later, or when you invoke it, for example, from the Run popup (Shift+Alt+F10).

Share

Select this checkbox to make the run/debug configuration available to other team members.

The shared run/debug configurations are kept in separate xml files under .idea \runConfigurations folder, while the local run/debug configurations are kept in the .idea\workspace.xml.

Allow running in parallel

When disabled, every time a new run/debug configuration is launched, RubyMine 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 checkbox is selected, it is possible to launch as many instances of the run/debug configuration as required. So doing, each runner will start in its own tab of the Run Tool Window or Debug Tool Window.

Toolbar

The tree view of run/debug configurations has a toolbar that helps you manage configurations available in your project as well as adjust default configurations templates.

Item

Shortcut

Description

icons general add svgAlt+Insert

Create a run/debug configuration.

icons general remove svgAlt+Delete

Delete the selected run/debug configuration. Note that you cannot delete default configurations.

Copy

Ctrl+D

Create a copy of the selected run/debug configuration. Note that you create copies of default configurations.

Edi Templates

Edit Templates

View and edit the default template for the selected run/debug configuration. The templates are used for newly created configurations.

icons actions moveUp svg/icons actions moveDown svg

Alt+Up/Alt+Down

Move the selected run/debug configuration up and down in the list.

The order of configurations in the list defines the order, in which the configurations appear when you choose a run/debug configuration.

Default templates of run/debug configurations are always sorted alphabetically.

Move into new folder / Create new folder

Move into new folder / Create new folder

You can group run/debug configurations by placing them into folders.

To create a folder, select the configurations within a category, click Folder, and specify the folder name. If only a category is in focus, an empty folder is created.

Then, to move a configuration into a folder, between the folders or out of a folder, use drag-and-drop or Move Up and Move Down buttons.

To remove grouping, select a folder and click Remove Configuration.

Sort configurations

Sort configurations

Click this button to sort configurations in the alphabetical order.

Templates

Under the Templates node in the tree view of run configurations, you can select a run configuration template and edit its default settings. This will not affect the configurations that are already created, but will be used as defaults when creating new configurations of the corresponding type.

When you select the Templates node itself, you will be able to adjust general settings that apply to all run/debug configurations:

Item

Description

Configurations available in Run Dashboard

In this section you can create a list of run configurations available in the Run Dashboard — a tool window that helps you execute and manage multiple run/debug configurations.

Note that the dashboard will only display the configuration types for which you have created one ore more configurations.
Thus, if you add a configuration type for which no configurations exist in the project, this type will not be displayed on the dashboard until you create a configuration of this type.

Confirm rerun with process termination

The behavior of this checkbox depends on whether the Single instance only option is selected for a particular run/debug configuration.
  • If this checkbox is selected, in case of a single instance, launching a new process (for example, by clicking Run on the main toolbar) while another process is still running, results in showing a dialog box prompting to terminate the current process before launching a new one.

  • If this checkbox is not selected (or in case of multiple instances), RubyMine starts the new process silently.

Temporary configurations limit

Specify the maximum number of temporary configurations to be stored and shown in the Select Run/Debug Configuration drop-down list.

Before Launch options

In this area you can specify tasks that must be be performed before starting the selected run/debug configuration. The tasks are performed in the order they appear in the list.

Item

Shortcut

Description

icons general add svgAlt+Insert

Click this icon to add one of the following available tasks:

  • Run External tool: select to run an external application. In the dialog that opens, select one or multiple applications you want to run. If it is not defined in RubyMine yet, add its definition. For more information, see Configuring Third-Party Tools and External Tools.

  • Run Another Configuration: select to execute another run/debug configuration. In the dialog that opens, select the configuration to be run.

  • Run File Watchers: select this option to have RubyMine apply all the currently active file watchers.

  • 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 Gulp 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 option to execute an npm script. In the NPM Script dialog box that opens, specify the npm run/debug configuration settings.

  • Start React Native Bundler: select this option to run the bundler automatically, as part of a running or debugging session. by default, this is done through react-native start. If your application uses Expo, you need to run the development server via the start npm task. To do that, click Add, then in the Configure React Native dialog, choose npm script and select start from the list.

  • Compile TypeScript: select 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 generate the source maps for your CoffeeScript sources. In the dialog that opens, specify where your CoffeeScript source files are located.

  • 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.

  • Run Remote External tool: adds a remote SSH external tool.

  • Run Rake task: add a Rake task to be executed prior to running or debugging. To choose a Rake task, click the browse button Browse, and select the desired task from the list of available tasks.

    Note that code completion is available here.

    runConfigRakeTask
  • 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).

icons general remove svgAlt+Delete

Click this icon to remove the selected task from the list.

Edit

Enter

Click this icon to edit the selected task. Make the necessary changes in the dialog that opens.

icons actions moveUp svg/icons actions moveDown svg

Alt+Up/Alt+Down

Click these icons to move the selected task one line up or down in the list. (The tasks are performed in the order that they appear in the list.)

Show this page

Select this checkbox to show the run/debug configuration settings prior to actually starting the run/debug configuration.

Activate tool window

If this checkbox is selected, which it is by default, the Run or the Debug tool window opens when you start the run/debug configuration.

Otherwise, the tool window isn't shown. However, when the configuration is running, you can open the corresponding tool window for it yourself by pressing Alt+4 or Alt+5.

Last modified: 6 December 2018

See Also