Autoprefixer parses CSS and adds vendor-prefixed CSS properties using the Can I Use database.
This plugin requires Grunt ~0.4.0
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-autoprefixer --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-autoprefixer');
In your project's Gruntfile, add a section named autoprefixer
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
autoprefixer: {
options: {
// Task-specific options go here.
},
your_target: {
// Target-specific file lists and/or options go here.
},
},
})
Type: Array
Default value: an array with default browsers
You can specify browsers actual for your project using this option:
options: {
browsers: ['last 2 versions', 'ie 8', 'ie 9']
}
Or using a global config file named browserslist
at the root of your project:
# Browsers that we support
> 5% in US
Last 2 versions
Read more about browserslist here.
Type: Boolean
Default value: true
Pass false
to disable ‘cascade’ indentation. Read more here.
Type: Boolean
Default value: true
Pass false
to disable outdated prefixes cleaning. Read more here.
Type: Boolean|String
Default value: false
Set it to true
if you want to get an output patch file:
options: {
diff: true // or 'custom/path/to/file.css.patch'
}
Also you can specify a path where to save this file. More examples in Gruntfile.
Type: Boolean|Object
Default value: false
If the map
option isn't defined or is set to false
, Autoprefixer will neither create nor update a sourcemap.
If true
is specified, Autoprefixer will try to find a sourcemap from a previous compilation step using an annotation comment (e.g. from Sass) and create a new sourcemap based on the found one (or just create a new inlined sourcemap). The created sourcemap can be either a separate file or an inlined map depending on what the previous sourcemap was.
You can gain more control over sourcemap generation by setting an object to the map
option:
prev
(string orfalse
): a path to a directory where a previous sourcemap is (e.g.path/
). By default, Autoprefixer will try to find a previous sourcemap using a path from the annotation comment (or using the annotation comment itself if the map is inlined). You can also set this option tofalse
to delete the previous sourcemap.inline
(boolean): whether a sourcemap will be inlined or not. By default, it will be the same as a previous sourcemap or inlined.annotation
(string): set this option to URL path you wish the annotation comment to be e.g.path/file.css.map
(by default, Autoprefixer will save your sourcemap to a directory where you save CSS). This option requiresinline
to befalse
or undefined.sourcesContent
(boolean): whether original contents (e.g. Sass sources) will be included to a sourcemap. By default, Autoprefixer will add contents only for new sourcemaps or if a previous sourcemap has them.
Type: Boolean
Default value: false
Enable or disable PostCSS safe mode.
options: {
safe: true
}
grunt.initConfig({
autoprefixer: {
options: {
// Task-specific options go here.
},
// prefix the specified file
single_file: {
options: {
// Target-specific options go here.
},
src: 'src/css/file.css',
dest: 'dest/css/file.css'
},
// prefix all files
multiple_files: {
files: [{
expand: true,
flatten: true,
src: 'src/css/*.css', // -> src/css/file1.css, src/css/file2.css
dest: 'dest/css/' // -> dest/css/file1.css, dest/css/file2.css
}]
},
// if you have specified only the `src` param, the destination will be set automatically,
// so source files will be overwritten
no_dest: {
src: 'dest/css/file.css' // globbing is also possible here
},
diff: {
options: {
diff: true
},
src: 'src/css/file.css',
dest: 'dest/css/file.css' // -> dest/css/file.css, dest/css/file.css.patch
},
sourcemap: {
options: {
map: true
},
src: 'src/css/file.css',
dest: 'dest/css/file.css' // -> dest/css/file.css, sourcemap is inlined
},
sourcemap_separate: {
options: {
map: {
inline: false
}
},
src: 'src/css/file.css',
dest: 'dest/css/file.css' // -> dest/css/file.css, dest/css/file.css.map
},
}
});
Check out project's Gruntfile.js for more examples.
$ npm update caniuse-db
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.