Code Monkey home page Code Monkey logo

guard-less's Introduction

Guard::Less

Gem Version Build Status Dependency Status Code Climate Test Coverage

A guard extension that compiles .less files to .css files when changed.

  • Compatible with Less ~> 2.3.
  • Tested against Ruby 2.0, 2.1, 2.2, Rubinius & JRuby (1.9 mode only).

Install

You will need to have Guard first.

Install the gem with:

gem install guard-less

Add an initial setup to your Guardfile with:

guard init less

Please note that you also have to install therubyracer (or therubyrhino when you are running JRuby).

Usage

Please read Guard usage doc.

Guardfile

less_options = {
  all_on_start: true,
  all_after_change: true,
  patterns: [/^.+\.less$/],
  output: 'public/stylesheets'
}

guard :less, less_options do
  less_options[:patterns].each { |pattern| watch(pattern) }
end

Please read Guard doc for more info about Guardfile DSL.

Options

all_after_change: [true|false]   # run on all files after any changed files
                                    # default: true

all_on_start: [true|false]       # run on all the files at startup
                                    # default: true

output: 'relative/path'          # base directory for output CSS files; if unset,
                                    # .css files are generated in the same directories
                                    # as their corresponding .less file
                                    # default: nil

import_paths: ['lib/styles']     # an array of additional load paths to pass to the
                                 # LESS parser, used when resolving `@import`
                                 # statements
                                 # default: [] (see below)

compress: true                   # minify output

yuicompress: true                # minify output using yui

patterns: []                     # array of patterns for matching watched/processed files

Output option

By default, .css files will be generated in the same directories as their corresponding .less files (partials beginning with _ are always excluded).

To customize the output location, pass the :output option as described above, and be sure to use a match group in the regular expression in your watch to capture nested structure that will be preserved, i.e.

less_options = {
  all_on_start: true,
  all_after_change: true,
  patterns: [/^app/stylesheets/(.+\.less)$/],
  output: 'public/stylesheets'
}

guard :less, less_options do
  less_options[:patterns].each { |pattern| watch(pattern) }
end

will result in app/stylesheets/forums/main.less producing CSS at public/stylesheets/forums/main.css.

Import paths option

As each .less file is parsed, the directory containing the file is automatically prepended to the import paths, so imports relative to your watched dirs like @import 'shared/_type-styles' should always work. You can supply additional paths with this option so that, for the ['lib/styles'] example, a file at lib/styles/reset.less could be imported without a qualified path as @import 'reset'.

Author

Brendan Erwin (@brendanjerwin, brendanjerwin.com)

Maintainer

Rémy Coutable

Contributors

https://github.com/guard/guard-less/graphs/contributors

guard-less's People

Contributors

brendanjerwin avatar ches avatar dwt avatar e2 avatar gerrit avatar jrsacks avatar kelsin avatar rymai avatar sjoonk avatar voidus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

guard-less's Issues

Please build and push new version of guard-less to rubygems.org

The current version of guard-less on rubygems requires less v2.1. The current github version can use ~> 2.3. In less 2.2 there were significant performance enhancements introduced, as well as removing the requirement for therubyracer. Simply pushing a new version to rubygems would assist in relieving a lot of dependency headache as well as getting much needed performance improvements. Thank you in advance!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.