Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eprev/grunt-bem
Run bem make using BEM API
https://github.com/eprev/grunt-bem
bem grunt-plugins
Last synced: 2 months ago
JSON representation
Run bem make using BEM API
- Host: GitHub
- URL: https://github.com/eprev/grunt-bem
- Owner: eprev
- License: mit
- Created: 2013-02-20T10:18:39.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2016-02-21T19:00:50.000Z (almost 9 years ago)
- Last Synced: 2024-08-09T18:56:32.484Z (5 months ago)
- Topics: bem, grunt-plugins
- Language: JavaScript
- Homepage:
- Size: 156 KB
- Stars: 9
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
# grunt-bem [![Build Status](https://travis-ci.org/eprev/grunt-bem.png)](https://travis-ci.org/eprev/grunt-bem)
> Run [`bem make`](https://github.com/bem/bem-tools) using BEM API.
## Getting Started
This plugin requires Grunt `~0.4.0`
If you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
```shell
npm install grunt-bem --save-dev
```One the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
```js
grunt.loadNpmTasks('grunt-bem');
```## The "bem" task
### Overview
In your project's Gruntfile, add a section named `bem` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
bem: {
options: {
// Task-specific options go here.
},
target: {
// Target-specific options go here.
}
}
})
```### Options
#### options.require
Type: `String`
Default value: `bem`Path to require BEM library.
#### options.root
Type: `String`
Default value: `.`Project root (cwd by default).
#### options.method
Type: `String`
Default value: `make`Method to run.
#### options.workers
Type: `Integer`
Default value: `10`Run number of workers.
#### options.force
Type: `Boolean`
Default value: `False`Force rebuild.
#### options.verbosity
Type: `String`
Default value: `info`Verbosity level (silly, verbose, info, warn, debug, error).
#### options.targets, target
Type: `String`
Default value: `target's name`Build targets.
### Usage Examples
#### Default Options
In this example, the default options are used to do build target `all` in the level `bem-project`. BEM is installed as a global package.
```js
grunt.initConfig({
bem: {
all: {
root: 'bem-project'
}
}
})
```#### Custom Options
In this example, custom options are used to do build targets `desktop.bundles` and `touch.bundles`. BEM is installed as a local package.
```js
grunt.initConfig({
bem: {
options: {
require: 'bem-project/node_modules/bem',
root: 'bem-project'
},
'desktop.bundles touch.bundles': {
verbosity: 'warn'
},
}
})
```#### Advanced Example
```js
grunt.initConfig({
watch: {
bem: {
files: ['bem-project/*.bundles/*/*.bemjson.js'],
tasks: ['bem:bundles'],
options: {
interrupt: true
}
}
},
bem: {
options: {
require: 'bem-project/node_modules/bem',
root: 'bem-project',
verbosity: 'warn'
},
'bundles': {
targets: 'desktop.bundles touch.bundles'
},
'bundles-forced': {
targets: 'desktop.bundles touch.bundles',
forced: true
}
}
});grunt.registerTask('default', ['bem:bundles-forced']);
```## Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/).
## Release History
* 2013-02-20 v0.1.0 First official release.