| Server IP : 68.183.124.220 / Your IP : 216.73.217.137 Web Server : Apache/2.4.18 (Ubuntu) System : Linux Sandbox-A 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : gavin ( 1000) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/gavin/workspace/readjs/node_modules/gulp-csslint/ |
Upload File : |
# gulp-csslint [![NPM version][npm-image]][npm-url] [![Build status][travis-image]][travis-url] [![Test coverage][coveralls-image]][coveralls-url] [![Dependency status][david-image]][david-url]
> CSSLint plugin for gulp 3
## Usage
First, install `gulp-csslint` as a development dependency:
```shell
npm install --save-dev gulp-csslint
```
Then, add it to your `gulpfile.js`:
```js
var csslint = require('gulp-csslint');
gulp.task('css', function() {
gulp.src('client/css/*.css')
.pipe(csslint())
.pipe(csslint.formatter());
});
```
## API
### csslint(ruleConfiguration)
#### ruleConfiguration
Type: `Object`
If you pass `lookup: false`, the local .csslintrc is not looked up automatically.
You can pass rule configuration as an object. See the [list of rules by ID on the CSSLint wiki](https://github.com/stubbornella/csslint/wiki/Rules-by-ID) for valid rule IDs.
Any properties passed will be in _addition_ to (or overwriting) the ones in .csslintrc (unless `lookup: false` is passed).
```js
gulp.src('client/css/*.css')
.pipe(csslint({
'shorthand': false
}))
.pipe(csslint.formatter());
```
### csslint(csslintrc)
#### csslintrc
Type: `String`
You can also pass the path to your csslintrc file instead of a rule configuration object.
```js
gulp.src('client/css/*.css')
.pipe(csslint('csslintrc.json'))
.pipe(csslint.formatter());
```
## Results
Adds the following properties to the file object:
```js
file.csslint.success = true; // or false
file.csslint.report = {}; // The report from CSSLint after linting the file
```
## Using formatters
Several formatters come built-in to CSSLint. To use one of these formatters, pass the name to `csslint.formatter`.
For a list of all formatters supported by `csslint`, see the [csslint wiki](https://github.com/CSSLint/csslint/wiki/Command-line-interface#--format).
```js
gulp.task('lint', function() {
gulp.src('lib/*.css')
.pipe(csslint())
.pipe(csslint.formatter('junit-xml'));
```
### Custom formatters
Custom formatters can be provided by first adding a valid CSSLint-formatter, such as `csslint-stylish`, then using it:
```js
var csslint = require('gulp-csslint');
csslint.addFormatter('csslint-stylish');
gulp.task('lint', function() {
gulp.src('lib/*.css')
.pipe(csslint())
.pipe(csslint.formatter('stylish'))
});
```
You can provide the formatter by requiring it directly as well:
```js
var csslint = require('gulp-csslint');
gulp.task('lint', function() {
gulp.src('lib/*.css')
.pipe(csslint())
.pipe(csslint.formatter(require('csslint-stylish')))
});
```
You can also provide an object with the following contract to implement your own formatter:
```js
{
id: 'string', // Name passed to csslint.formatter
startFormat: function() {}, // Called before parsing any files, should return a string
startFormat: function() {}, // Called after parsing all files, should return a string
formatResult: function (results, filename, options) {} // Called with a results-object per file linted. Optionally called with a filename, and options passed to csslint.formatter(*formatter*, *options*)
}
```
You can also provide a function, which is called for each file linted with the same arguments as `formatResults`.
### Formatter options
You can also pass options to the built-in formatter, by passing a second option to `formatter`.
```js
gulp.task('lint', function() {
gulp.src('lib/*.css')
.pipe(csslint())
.pipe(csslint.formatter('junit-xml', options));
});
```
See the documentation for the formatters regarding what options they support.
This plugin supports one option outside of that, called `logger`, allowing you to specify how to log out the report.
Default is using `process.stdout.write`, but you can use e.g. `console.log`, or `gutil.log`.
```js
gulp.task('lint', function() {
gulp.src('lib/*.css')
.pipe(csslint())
.pipe(csslint.formatter('junit-xml', {logger: console.log.bind(console)}));
});
```
```js
gulp.task('lint', function() {
gulp.src('lib/*.css')
.pipe(csslint())
.pipe(csslint.formatter('junit-xml', {logger: gutil.log.bind(null, 'gulp-csslint:')}));
});
```
`logger` is called once for the starting format of the formatter, then once for each file containing violations, then
lastly once for the ending format. Instead of writing to `stdout`, you can write to file using this option.
```js
gulp.task('lint', function(cb) {
var fs = require('fs');
var output = '';
gulp.src('lib/*.css')
.pipe(csslint())
.pipe(csslint.formatter('junit-xml', {logger: function(str) { output += str; }}))
.on('end', function(err) {
if (err) return cb(err);
fs.writeFile('some/path/junit.xml', output, cb);
});
});
```
This functionality is only available when not using a custom formatting function.
## Custom rules
Use the `csslint.addRule(rule)` method to define custom rules that run in addition to the rules defined in the csslintrc file. See [Working with Rules](https://github.com/CSSLint/csslint/wiki/Working-with-Rules) for details.
```js
var csslint = require('gulp-csslint');
csslint.addRule({
// rule information
});
gulp.task('lint', function() {
gulp.src('lib/*.css')
.pipe(csslint())
.pipe(csslint.formatter())
});
```
## Fail on errors
Pipe the file stream to `csslint.failFormatter()` to fail on errors.
```js
var csslint = require('gulp-csslint');
gulp.task('lint', function() {
gulp.src('lib/*.css')
.pipe(csslint())
.pipe(csslint.formatter()) // Display errors
.pipe(csslint.formatter('fail')); // Fail on error (or csslint.failFormatter())
});
```
[travis-url]: http://travis-ci.org/lazd/gulp-csslint
[travis-image]: https://img.shields.io/travis/lazd/gulp-csslint.svg
[npm-url]: https://npmjs.org/package/gulp-csslint
[npm-image]: https://img.shields.io/npm/v/gulp-csslint.svg
[david-url]: https://david-dm.org/lazd/gulp-csslint
[david-image]: https://img.shields.io/david/lazd/gulp-csslint.svg
[coveralls-url]: https://coveralls.io/r/lazd/gulp-csslint
[coveralls-image]: https://img.shields.io/coveralls/lazd/gulp-csslint.svg