The term minification or compression 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 become unnecessary for code execution but only increase the size of code to be transferred.
RubyMine integrates with the YUI Compressor CSS minification tool. To use the minifier in RubyMine, you need to configure it as a File Watcher. For each supported minifier, RubyMine provides a predefined File Watcher template. To run a minifier in your project, create a project-specific File Watcher based on the relevant template.
Before you start
- Install Node.js and configure it as a local Node.js interpreter.
- Install and enable the NodeJS repository plugin on the Plugins page as described in Installing, Updating and Uninstalling Repository Plugins and Enabling and Disabling Plugins.
Installing and configuring the YUI Compressor
- Switch to the directory where the Node Package Manager (npm) is stored or define a
pathvariable for it so it is available from any folder.
- 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
RubyMine 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 Settings/Preferences dialog box by choosing 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. for Windows and Linux or for macOS on the main menu, and then click
- Click the Add button or press Alt+Insert 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>.jarfile. If you installed the tool through the Node Package Manager, RubyMine locates the required file itself and fills in the field automatically. Otherwise, type the path manually or click Browse and choose the file location in the dialog box that opens.
- Proceed as described on page File Watchers.
Minifying the code
RubyMine 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.