Single-file-output LESS compiler for Broccoli
npm install broccoli-less-singleThe broccoli-less-single plugin compiles .less files with
less.js.
This plugin is designed to compile a single, primary input file
into a single output file, with a node of @importd dependencies. This
differs from broccoli-less,
which compiles each .less file individually into a .css file and doesn't
support @imports or a single output file depending on multiple inputs.
This code is based heavily on
broccoli-sass
``bash`
npm install --save-dev broccoli-less-single
`js
const compileLess = require('broccoli-less-single');
const outputNode = compileLess(inputNodes, inputFile, outputFile, options)
`
* inputNodes: An array of nodes that act as the include paths for
less. If you have a single node, pass [node].
* inputFile: Relative path of the main .less file to compile. ThisinputNodes
file must exist in one of the .
* outputFile: Relative path of the output CSS file.
* options: A hash of options for less + caching options.
`js`
var appCss = compileLess(sourceNodes, 'myapp/app.less', 'assets/app.css')
`css
/ file: sub.less /
h1 {
font-size: 200em;
}
/ =================== /
/ file: app.less /
@import "sub.less";
html, body {
margin: 20px;
}
`
A sample project using bootstrap and broccoli-less-single can be found here.
`js
// Brocfile.js
const Funnel = require('broccoli-funnel');
const compileLess = require('broccoli-less-single');
const mergeTrees = require('broccoli-merge-trees');
const appTree = funnel('app');
const lessTree = compileLess(appTree, 'styles/app.less', 'assets/app.css', {
paths: ['.', 'bower_components/bootstrap/less'],
// Note: if you want to cache to avoid possibly expensive rebuilds
cacheInclude: [/.*\.(css|less)$/],
cacheExclude: [],
});
module.exports = mergeTrees([appTree, lessTree]);
``
[npm]: https://www.npmjs.org/package/broccoli-less-single
[npm-badge]: https://img.shields.io/npm/v/broccoli-less-single.svg?style=flat-square
[travis]: https://travis-ci.org/gabrielgrant/broccoli-less-single
[travis-badge]: https://img.shields.io/travis/gabrielgrant/broccoli-less-single.svg?branch=master&style=flat-square