IntelliJ IDEA 2017.2 Help

Minifying CSS

This feature is supported in the Ultimate edition only.

On this page:

Introduction

The term minification or compression in the context of CSS means removing all unnecessary characters, such as spaces, new lines, comments without changing the functionality of the source code. At the development and debugging stage, these characters improve the code readability. However at the production stage, they are become unnecessary for code execution but only increase the size of code to be transferred.

IntelliJ IDEA integrates with YUI Compressor CSS minification tool. To use integration in IntelliJ IDEA, you need to configure minifier as a File Watcher. For each supported minifier, IntelliJ IDEA provides a predefined File Watcher template. Predefined File Watcher templates are available at the IntelliJ IDEA level. To run a minifier in a project, create a project-specific File Watcher based on the relevant template.

Installing and configuring the YUI Compressor

  1. Download and install Node.js. The runtime environment is required for two reasons:
    • The CSS minifier is started through Node.js.
    • NPM, which is a part of the runtime environment, is also the easiest way to download the CSS minifier.

    If you are going to use the command line mode, make sure the path to the parent folder of the Node.js executable file and the path to the npm folder are added to the PATH variable. This enables you to launch the CSS minifier and npm from any folder.

  2. Install and enable the NodeJS repository plugin as described in Installing, Updating and Uninstalling Repository Plugins and Enabling and Disabling Plugins.
  3. Download and install the JavaScript minification tool. The easiest way is to use the Node Package Manager (npm), which is a part of Node.js.
    1. Switch to the directory where the Node Package Manager (npm) is stored or define a path variable for it so it is available from any folder.
    2. Type the following command at the command prompt:
      npm install yuicompressor

    If you use the Node Package Manager (npm), the minifier is installed under Node.js so Node.js, which is required for starting the tool, will be specified in the path to it.

Creating a file watcher

IntelliJ IDEA provides a common procedure and user interface for creating File Watchers of all types. The only difference is in the predefined templates you choose in each case.

  1. To start creating a File Watcher, open the Settings/Preferences dialog box by choosing File | Settings for Windows and Linux or IntelliJ IDEA | Preferences for macOS on the main menu, and then click File Watchers under the Tools node. The File Watchers page that opens, shows the list of File Watchers that are already configured in the project.
  2. Click the Add button new.png or press Alt+Insert and choose the YUI Compressor CSS predefined template from the pop-up list.
  3. In the Program text box, specify the path to the yuicompressor-<version>.jar file. If you installed the tool through the Node Package Manager, IntelliJ IDEA locates the required file itself and fills in the field automatically. Otherwise, type the path manually or click the Browse button browseButton.png and choose the file location in the dialog box that opens.
  4. Proceed as described on page Using File Watchers.

Minifying the code

When a minification File Watcher is enabled (see Enabling and disabling File Watchers), minification starts automatically as soon as a file to which it is applicable in the File Watcher's scope is changed or saved, see Configuring the behaviour of the File Watcher.

IntelliJ IDEA creates a separate file with the generated output. The file has the name of the source CSS file and the extension min.css. The location of the generated file is defined in the Output paths to refresh text box of the New Watcher dialog. However, in the Project Tree, by default it is shown under the source CSS file which is now displayed as a node. To change the default presentation, configure file nesting in the Project tool window.

Last modified: 30 August 2017

See Also