sails-hook-mincer

0.2.1 • Public • Published

This provides a sails hook integrating the Sprokets inspired asset compiler Mincer. This uses the the Connect-Assets module for integrating mincer. It supports everything mincer supports: Coffeescript, SCSS, LESS, Stylus, Jade, HAML, and EJS.

NPM version Dependency status

Features

The advantages of using connect-mincer compared to sails's built-in asset manager includes:

  • Bust Caching: All assets are fingerprinted using an MD5 hash, so if an asset changes, the filename also changes (in production).
  • Asset Helpers: Referencing assets is a breeze with built in asset helpers such as <%- css('path/to/asset') %> and <%- js('path/to/js') %>
  • Directives: You can require files and whole directories of js/coffeescript in a single file.
  • Multiple Loaders: Instead of having just one minified and concatenated js file as defined by any assets in the linker folder, you can have as many as you want via directives.

Install

$ npm install sails-hook-mincer --save

Setup

You'll need to modify the default sails grunt tasks to disable it's builtin assets compiler and linker

Dev Environment: tasks/register/default.js

  grunt.registerTask('default', function() {
    // Do Nothing
    return;
  });

Prod Environment: tasks/register/prod.js

  grunt.registerTask('prod', function() {
    // Do Nothing
    return;
  });

TODO: Add precompile scripts for tasks/register/build.js and tasks/register/buildProd.js

** When switching, make sure to clear any compiled assets in your .tmp directory


Configuration

Simply create a config/mincer.js to modify the options

module.exports.mincer = {
  // Enable/Disable mincer - Default: true
    enable: true,
    
    // Add a custom on initialize function to setup mincer
    // @see [Connect-Assets](https://github.com/adunkman/connect-assets#custom-configuration-of-mincer)
    onInit: function(instance) {
      // Custom configuration of the mincer environment can be placed here
    instance.environment.registerHelper(/* ... */);
    },
    
    // @see [Connect-Assets](https://github.com/adunkman/connect-assets#options) for all available options
    paths: ['assets/']
}

For all available options, see Connect-Assets Options


Readme

Keywords

none

Package Sidebar

Install

npm i sails-hook-mincer

Weekly Downloads

0

Version

0.2.1

License

ISC

Last publish

Collaborators

  • dprietti