The term minification or compression in the context of CSS means removing all unnecessary characters, such as spaces, new lines, comments without affecting the functionality of the source code.
These characters facilitate working with the code at the development and debugging stage by improving the code readability. However at the production stage these characters become extraneous: being insignificant for code execution, they increase the size of code to be transferred. Therefore it is considered good practice to remove them before deployment.
PhpStorm supports integration with the YUI Compressor CSS minification tool.
In PhpStorm, minifier configurations are called File Watchers. For each supported minifier, PhpStorm provides a predefined File Watcher template. Predefined File Watcher templates are available at the PhpStorm level. To run a minifier against your project files, you need to create a project-specific File Watcher based on the relevant template, at least, specify the path to the minifier to use on your machine.
On this page:
Download and install the Node.js framework. The framework is required for two reasons:
- The CSS minifier is started through Node.js.
- The Node Package Manager (npm), which is a part of the framework, is also the easiest way to download the minifier.
For details on using Node.js in PhpStorm, see the section Node.js
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 Node Package Manager folder (npm).
Install and enable the NodeJS repository plugin.
The plugin is not bundled with PhpStorm, but it is available from the PhpStorm plugin repository. Once enabled, the plugin is available at the IDE level, that is, you can use it in all your PhpStorm projects.
- 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.
Type the following command at the command line 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.
PhpStorm 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.
- To start creating a File Watcher, open the Project Settings and click File Watchers. The File Watchers page that opens, shows the list of File Watchers that are already configured in the project.
- Click the Add button or press Alt+InsertAlt+InsertAlt+InsertAlt+InsertAlt+InsertAlt+InsertAlt+Insert or Ctrl+NAlt+InsertCommand N or Control EnterControl N or Control EnterCommand N or Control Enter and choose the YUI Compressor CSS predefined template from the pop-up list.
- In the Program text box, specify the path to the yuicompressor-<version>.jar file. If you installed the tool through the Node Package Manager, PhpStorm locates the required file itself and fills in the field automatically. Otherwise, type the path manually or click the Browse button and choose the file location in the dialog box that opens.
- Proceed as described on page Using File Watchers.
Minifying the code
PhpStorm 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, it is shown under the source CSS file which is now displayed as a node.