PyCharm provides integration with the Gulp.js Task Runner. Gulp.js support involves:
-
Parsing
Gulpfile.js
files, recognizing definitions of tasks and targets. - Building trees of tasks and targets.
-
Navigation between a task or a target in the tree and its definition in the
Gulpfile.js
file. - Running tasks and targets.
- Configuring the task execution mode and output.
- Creating a Gulp.js run configuration automatically.
On this page:
-
Download and install Node.js
. The framework is required for two reasons:
- The Gulp.js task runner is started through Node.js.
- NPM, which is a part of the framework, is also the easiest way to download the Gulp.js task runner.
-
If you are going to use the command line mode, make sure the following paths are added to the
PATH
variable:- The path to the parent folder of the Node.js executable file.
-
The path to the
npm
folder.
This enables you to launch the Gulp.js task runner and npm from any folder.
-
Install and enable the NodeJS plugin.
The plugin is not bundled with PyCharm, but it is available from the PyCharm plugin repository.
Once enabled, the plugin is available at the IDE level, that is, you can use it in all your PyCharm projects. See Installing, Updating and Uninstalling Repository Plugins and Enabling and Disabling Plugins for details.
Installing Gulp.js
To run Gulp in a PyCharm project you need a Gulp package installed locally, under the project root.
You can additionally have a global installation of Gulp. In this case, the path to the Gulp installation will be added to the
PATH
environment variable. This will allow you to invoke Gulp from any folder when working in the command line mode.
The basic Gulp.js functionality is implemented in the gulp.js
package.
The package is responsible for building project trees of Gulp tasks and for coding assistance in editing the Gulpfile.js
file.
The gulp
package can be installed either in the command line mode or through the PyCharm user interface.
In either case, installation is performed via npm.
-
Launch the embedded Terminal
by hovering your mouse pointer over
in the lower left corner of PyCharm and choosing Terminal from the menu (see Working with Embedded Local Terminal for details).
-
Do one of the following:
-
To install Gulp.js in the current project, switch to the project root folder and type the following command at the command line prompt:
npm install gulp
-
To install Gulp.js globally, type:
npm install --global gulp
-
To install Gulp.js in the current project, switch to the project root folder and type the following command at the command line prompt:
- Run NPM from PyCharm using the Node.js and NPM page of the Settings dialog box: Open the Settings dialog box by choosing or pressing Ctrl+Alt+S, see Accessing Settings for details. Then click Node.js and NPM under the Languages & Frameworks node. >
-
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
.
-
In the Available Packages dialog box that opens, select the
gulp
package.Optionally:
- Specify the version to install.
-
To have the package installed globally, select the Options check box and type
--global
in the text box.
- Click Install Package to start installation.
Running Gulp.js Tasks
Gulp.js tasks can be run either from the tasks tree in the dedicated Gulp Tool Window,
or from the Gulpfile.js
file, or by launching a Gulp.js run configuration.
Running Gulp.js Tasks from the Tasks Tree
Gulp.js starts building a tasks tree as soon as you
invoke Gulp.js by choosing Show Gulp Tasks
on the context menu of a Gulpfile.js
in the Project tool window
or of a Gulpfile.js
opened in the editor.
The tree is built according to the Gulpfile.js
file on which Gulp.js was invoked.
If you have several Gulpfile.js
files in your project, you can build a separate tasks tree for each of them and run tasks without abandoning the previously built tasks trees.
Each tree is shown in a separate tab.
Technically, PyCharm invokes Gulp.js
and processes Gulpfile.js
according to the default Gulp.js run configuration.
However this is done silently and does not require any steps from your side.
-
If the Gulp tool window is not opened yet, do one of the following:
-
Select the required
Gulpfile.js
file in the Project tool window and choose Show Gulp Tasks on the context menu of the selection. -
Open the required
Gulpfile.js
file in the editor and choose Show Gulp Tasks on the context menu of the editor.
In either case, the Gulp tool window opens showing the tasks tree built according to the selected or opened
Gulp.js
file. -
Select the required
-
If the Gulp tool window is already opened, click the Add gulpfile button
on the toolbar and choose the required
Gulpfile.js
file from the list. PyCharm adds a new node and builds a tasks tree in it. The title of the node shows the path to theGulpfile.js
file according to which the tree is built. -
To re-build a tasks tree, switch to the required node and click
on the toolbar.
If your Gulpfile.js
is written in ECMA6,
by default PyCharm does not recognize this format and fails to build a tasks tree. To solve this problem,
update the default Gulp.js run configuration:
- Choose Shift+Alt+F10 and select Edit Configuration from the pop-up menu. on the main menu. Alternatively, click
- Under the Defaults node, click Gulp.js.
-
In the Run/Debug Configuration: Gulp.Js dialog box that opens,
type
--harmony
in the Node options text box and click OK.
-
To run a Gulp.js task from a tree of tasks, do one of the following:
- Double click the required task in the tree.
- Select the required task and choose Run <task name> on the context menu of the selection.
- Select the required task and press Enter.
-
To run the
default
task, select the root node in the tree and choose Run default on the context menu of the selection. - To navigate to the definition of a task, select the required task in the tree and choose Jump to source on the context menu of the selection.
The task execution output will be displayed in the Gulp Console pane of the Run tool window. The pane shows the Gulp.js output, reports the errors occurred, lists the packages or plugins that have not been found, etc. The name of the last executed task is displayed on the title bar of the pane.
- To run several tasks, use the multiselect mode: hold Shift (for adjacent items) or Ctrl (for non-adjacent items) keys and select the required tasks, then choose Run on the context menu of the selection.
You can run tasks right from the Gulpfile.js
file opened in the editor without previously building a tree of tasks.
-
Position the cursor at the definition of the task to run and choose Run <task name> on the context menu of the selection.
PyCharm creates and launches a temporary run configuration with the name of the selected task.
The task execution output will be displayed in the Gulp Console pane of the Run tool window. The pane shows the Gulp.js output, reports the errors occurred, lists the packages or plugins that have not been found, etc. The name of the last executed task is displayed on the title bar of the pane.
- To save an automatically created temporary run configuration, position the cursor at the definition of the task for which it was created and choose Save <task name> on the context menu of the selection. Learn more in Creating and Saving Temporary Run/Debug Configurations and Temporary and Permanent Run/Debug Configurations.
Running and Debugging Tasks According to a Run Configuration
Besides using temporary run configurations that PyCharm creates automatically, you can create and launch your own Gulp.js run configurations. For details about run configurations, see Run/Debug Configuration and Creating and Editing Run/Debug Configurations.
- Choose Shift+Alt+F10 and select Edit Configuration from the pop-up menu. on the main menu. Alternatively, click
-
Click the Add New Configuration button
on the toolbar and select Gulp.js from the pop-up list.
-
In the Run/Debug Configuration: Gulp.Js dialog box that opens, specify the name of the run configuration, the tasks to run (use blank spaces as separators),
the location of the
Gulpfile.js
file to retrieve the definitions of the tasks from, and the path to theGulp
package installed locally, under the project root.Specify the location of the Node executable file and the NodeJS-specific options to be passed to this executable file, see Node parameters for details.
If applicable, specify the environment variables
for the NodeJS executable file.
If applicable, in the Arguments field, specify the arguments for tasks to be executed with. Use the following format:
For example:--<parameter_name> <parameter_value>
--env development
.For details about passing task arguments, see https://github.com/gulpjs/gulp/blob/master/docs/recipes/pass-arguments-from-cli.md
-
Select the run configuration from the list on the main tool bar and then choose Run toolbar button
.
on the main menu or click the
- Create a Gulp.js run/debug configuration, see above.
-
Open the
Gulpfile.js
file in the editor and set the breakpoints in it where necessary. -
To start a debugging session,
select the required debug configuration from the list on the main tool bar
and then choose Debug toolbar button
.
on the main menu or click the - In the Debug tool window that opens, analyze the suspended task execution, step through the task, etc. as described in Examining Suspended Program and Stepping Through the Program.