AppCode 2018.1 Help

Run/Debug Configuration: Node.js

Run | Edit Configurations | new | Node.js


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

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

  1. Install and enable the Node.js plugin. The plugin is not bundled with AppCode, 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 Node.js that contains the Node Package Manager(npm).

Configuration tab

Item

Description

Node interpreter

In this field, specify the Node.js interpreter to use. If you choose the Project alias, AppCode will automatically use the project default interpreter from the Node interpreter field on the Node.js and NPM page.

In most cases, AppCode detects the project default interpreter and fills in the field itself. You can also choose another configured local interpreter or click browseButton and configure a new one.

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 Compiling CoffeeScript to JavaScript.

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 add.png and specify the variable name and value.

  • To discard a variable definition, select it in the list and click Delete 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 AppCode do it automatically.

Auto configuration

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

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

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

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, AppCode 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 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 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 V8 log files isolate-<session number>.

  • One log file for all isolates (V8 instances):

Allow taking heap snapshots

Select this checkbox 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 AppCode 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

Item

Shortcut

Description

add N/A

Click this button to add a new configuration to the list.

delete N/A

Click this button to remove the selected configuration from the list.

copy icon N/A

Click this button to create a copy of the selected configuration.

settings

Edit defaults

Click this button to edit the default configuration templates. The defaults are used for newly created configurations.

arrowUp or arrowDown

N/A or N/A

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

Item

Description

Name

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

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.

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

Single instance only

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

Every time a new run/debug configuration is launched, AppCode 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.

Specify which tasks must be performed before applying the run/debug configuration. The specified tasks are performed in the order they appear in the list.

Item

Keyboard shortcut

Description

add N/A 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 AppCode. In the dialog that opens, select the application or applications that should be run. If the necessary application is not defined in AppCode yet, add its definition. For more information, see Configuring Third-Party Tools and External Tools.

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

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

delete N/A

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

edit1 N/A

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

arrowUp N/A

Click this icon to move the selected task one line up in the list.

arrowDown N/A

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.

Activate tool window

Select 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: 19 September 2019