更多gulp常用插件使用请访问:gulp常用插件汇总


** gulp-postcss**这是一款通过多个插件通过管道传递CSS,但是仅解析一次CSS。

更多使用文档请点击访问gulp-postcss工具官网

安装

一键安装不多解释

  1. npm install --save-dev gulp-postcss

使用

单独安装所需的postcss插件。例如,对于autoprefixer,您需要安装autoprefixer软件包。

基本用法

postcss(options)

  • options(参数)

    类型:Array or null

配置是从自动加载postcss.config.js 这里描述的,所以你不必指定任何选项。

  1. var postcss = require('gulp-postcss');
  2. var gulp = require('gulp');
  3. gulp.task('css', function () {
  4. return gulp.src('./src/*.css')
  5. .pipe(postcss())
  6. .pipe(gulp.dest('./dest'));
  7. });

直接传递插件

  1. var postcss = require('gulp-postcss');
  2. var gulp = require('gulp');
  3. var autoprefixer = require('autoprefixer');
  4. var cssnano = require('cssnano');
  5. gulp.task('css', function () {
  6. var plugins = [
  7. autoprefixer({browsers: ['last 1 version']}),
  8. cssnano()
  9. ];
  10. return gulp.src('./src/*.css')
  11. .pipe(postcss(plugins))
  12. .pipe(gulp.dest('./dest'));
  13. });

将其他选项传递给PostCSS

gulp-postcss的第二个可选参数传递给PostCSS。

例如,这可用于启用自定义解析器:

  1. var gulp = require('gulp');
  2. var postcss = require('gulp-postcss');
  3. var nested = require('postcss-nested');
  4. var sugarss = require('sugarss');
  5. gulp.task('default', function () {
  6. var plugins = [nested];
  7. return gulp.src('in.sss')
  8. .pipe(postcss(plugins, { parser: sugarss }))
  9. .pipe(gulp.dest('out'));
  10. });

使用自定义处理器

  1. var postcss = require('gulp-postcss');
  2. var cssnext = require('postcss-cssnext');
  3. var opacity = function (css, opts) {
  4. css.eachDecl(function(decl) {
  5. if (decl.prop === 'opacity') {
  6. decl.parent.insertAfter(decl, {
  7. prop: '-ms-filter',
  8. value: '"progid:DXImageTransform.Microsoft.Alpha(Opacity=' + (parseFloat(decl.value) * 100) + ')"'
  9. });
  10. }
  11. });
  12. };
  13. gulp.task('css', function () {
  14. var plugins = [
  15. cssnext({browsers: ['last 1 version']}),
  16. opacity
  17. ];
  18. return gulp.src('./src/*.css')
  19. .pipe(postcss(plugins))
  20. .pipe(gulp.dest('./dest'));
  21. });

源地图支持

默认情况下,源地图是禁用的,以与gulp-sourcemaps一起提取地图。

  1. return gulp.src('./src/*.css')
  2. .pipe(sourcemaps.init())
  3. .pipe(postcss(plugins))
  4. .pipe(sourcemaps.write('.'))
  5. .pipe(gulp.dest('./dest'));

高级用法

如果要在每个文件基础上配置postcss,则可以传递一个回调,该回调接收vinyl 文件对象并返回 { plugins: plugins, options: options }。例如,当您需要不同地解析不同的扩展名时:

  1. var gulp = require('gulp');
  2. var postcss = require('gulp-postcss');
  3. gulp.task('css', function () {
  4. function callback(file) {
  5. return {
  6. plugins: [
  7. require('postcss-import')({ root: file.dirname }),
  8. require('postcss-modules')
  9. ],
  10. options: {
  11. parser: file.extname === '.sss' ? require('sugarss') : false
  12. }
  13. }
  14. }
  15. return gulp.src('./src/*.css')
  16. .pipe(postcss(callback))
  17. .pipe(gulp.dest('./dest'));
  18. });

使用可以实现相同的结果 postcss-load-config,因为它ctx与上下文选项和乙烯基文件一起接收。

  1. var gulp = require('gulp');
  2. var postcss = require('gulp-postcss');
  3. gulp.task('css', function () {
  4. var contextOptions = { modules: true };
  5. return gulp.src('./src/*.css')
  6. .pipe(postcss(contextOptions))
  7. .pipe(gulp.dest('./dest'));
  8. });
  1. module.exports = function (ctx) {
  2. var file = ctx.file;
  3. var options = ctx.options;
  4. return {
  5. parser: file.extname === '.sss' ? : 'sugarss' : false,
  6. plugins: {
  7. 'postcss-import': { root: file.dirname }
  8. 'postcss-modules': options.modules ? {} : false
  9. }
  10. }
  11. })

gulp常用插件之gulp-postcss使用的更多相关文章

  1. gulp常用插件之cssnano使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 cssnano这是一款将你的 CSS 文件做 多方面的的优化,以确保最终生成的文件 对生产环境来说体积是最小的插件. 更多使用文档请点击访问cha ...

  2. 精通gulp常用插件

    本文主要展示的是gulp常用插件的使用方法和用途,通过对插件的熟练运用达到精通gulp.不定期更新.可以到github上面下载DEMO. github地址:lin-xin/gulp-plugins 匹 ...

  3. node和gulp实现前端工程自动化(附:gulp常用插件)

    /** * 1. LESS编译 压缩 合并 * 2. JS合并 压缩 混淆 * 3. img复制 * 4. html压缩 */ // 在gulpfile中先载入gulp包,因为这个包提供了一些APIv ...

  4. gulp常用插件之gulp-eslint使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 ** gulp-eslint**这是一个用于识别和报告在ECMAScript/JavaScript代码中找到的模式的Gulp插件.. 更多使用文档 ...

  5. gulp常用插件之gulp-babel使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-babel这是Babel的Gulp插件. 此自述文件适用于gulp-babel v8 + Babel v7检查7.x分支以了解使用Bab ...

  6. gulp常用插件之pump使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 pump这是一款小型节点模块,可将流连接在一起并在其中一个关闭时将其全部销毁. 使用标准source.pipe(dest)源时,如果dest发出关 ...

  7. gulp常用插件之gulp-notify使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-notify这是一款gulp通知插件. 更多使用文档请点击访问gulp-notify工具官网. 安装 一键安装不多解释 npm inst ...

  8. gulp常用插件之gulp-beautify使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-beautify这是一款使用js-beautify进行资产美化插件. 更多使用文档请点击访问gulp-beautify工具官网. 安装 ...

  9. gulp常用插件之gulp-uglify使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-uglify这是一款使用UglifyJS缩小js文件. 更多使用文档请点击访问gulp-uglify工具官网. 安装 一键安装不多解释 ...

随机推荐

  1. css 浏览兼容问题及解决办法 (2)

    1.div的垂直居中问题 vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了.缺点是要控制内容不要换行 2. ...

  2. Elasticsearch与中文分词配置

    一. elasticsearch on windows 1.下载地址: https://www.elastic.co/cn/downloads/elasticsearch 如果浏览器下载文件慢,建议使 ...

  3. sed命令入门

    什么是sed sed是一种流处理编辑器,可以分割.查找.替换文本. sed命令的处理流程:行处理 Created with Raphaël 2.1.0在shell中执行sed文本或管道输入读入到模式空 ...

  4. Linux中awk抽取包含某字段的整行日志

    命令示例:awk '{if($0~"listAuths") print}'   xxx.log 解释说明:抽取xxx.log整个日志文件中,包含“listAuths”的行,打印输出

  5. CentOS与Ubuntu的区别

    学习博客:https://www.cnblogs.com/lirongzheng/p/8250511.html 更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc ...

  6. 前端开发:这10个Chrome扩展你不得不知

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://blog.bitsrc.io/10-top-chrome-extensions-f ...

  7. lua学习之深入函数第二篇

    深入函数 2 非全局的函数 函数是第一类值,函数可以存储到全局变量,局部变量,table 字段中 lua 函数库中的大部分函数存储到 table 字段中 Lib = {} Lib.foo = func ...

  8. C#设计模式学习笔记:(18)状态模式

    本笔记摘抄自:https://www.cnblogs.com/PatrickLiu/p/8032683.html,记录一下学习过程以备后续查用. 一.引言 今天我们要讲行为型设计模式的第六个模式--状 ...

  9. 使用MuMu模拟器调试AndroidStudio项目

    1.安装一款安卓模拟器 ​ 本例使用网易MuMu模拟器,因为目前网络上这类模拟器只有mumu的安卓版本是最新的,为6.0,安卓自带的Virtual Device虽然有很新的版本,但如果pc配置不是很高 ...

  10. redis中key键操作

    keys */查看所有的key remoteSelf:1>select 0 "OK" remoteSelf:0>keys * 1) "SUBCRIBEMAP& ...