Grunt
安装
npm install grunt-purgecss --save-dev
安装插件后,可以使用以下 JavaScript 代码在 Gruntfile 中启用它
grunt.loadNpmTasks('grunt-purgecss');
“purgecss” 任务
概述
在项目的 Gruntfile 中,将名为 purgecss
的部分添加到传递给 grunt.initConfig()
的数据对象中。
grunt.initConfig({
// Configuration to be run (and then tested).
purgecss: {
my_target: {
options: {
content: ['./src/**/*.html']
},
files: {
'dist/app.css': ['src/css/app.css']
}
}
}
});
选项
插件可以使用 Purgecss 的所有选项。您将在下面找到可用的主要选项。有关完整列表,请转到 Purgecss 文档网站。
options.content
类型:string | Object
您可以使用文件名或 glob 数组指定应由 Purgecss 分析的内容。文件可以是 HTML、Pug、Blade 等。
options.extractors
类型:Array<Object>
Purgecss 可以根据您的需要进行调整。如果您发现很多未使用的 CSS 没有被移除,您可能需要使用自定义提取器。有关提取器的更多信息 此处。
options.safelist
您可以指示哪些选择器可以安全地保留在最终 CSS 中。这可以通过选项 safelist
来实现。
此选项有两种形式。
safelist: ['random', 'yep', 'button', /^nav-/]
在此形式中,safelist 是一个可以采用字符串或正则表达式的数组。
复杂 形式是
safelist: {
standard: ['random', 'yep', 'button', /^nav-/],
deep: [],
greedy: [],
keyframes: [],
variables: []
}
options.keyframes
类型:boolean
默认值:false
如果您正在使用 CSS 动画库(例如 animate.css),可以通过将 keyframes
选项设置为 true 来移除未使用的关键帧。
options.fontFace
类型:boolean
默认值:false
如果 CSS 中有任何未使用的 @font-face
规则,可以通过将 fontFace
选项设置为 true 来移除它们。
示例
以下示例使用所有可用的主要选项。
grunt.initConfig({
// Configuration to be run (and then tested).
purgecss: {
my_target: {
options: {
content: ['./src/**/*.html', `src/**/*.js`, 'src/**/*.blade', 'src/**/*.vue'],
extractors: {
extractor: class {
static extract(content) {
content.match(/a-Z/) || []
}
},
extension: ['html', 'blade']
},
safelist: ['random', 'yep', 'button', /red$/],
keyframes: true,
fontFace: true
},
files: {
'dist/app.css': ['src/css/app.css']
}
}
}
});