(理解)webpack中postcss-loader的

(理解)webpack中postcss-loader的

认识PostCSS工具
  • 什么是PostCSS呢?
    • PostCSS是一个通过JavaScript来转换样式的工具
    • 这个工具可以帮助我们进行一些CSS的转换和适配(有些属性是由兼容问题的),比如自动添加浏览器前缀、css样式的重置
    • 但是实现这些功能,我们需要借助于PostCSS对应的插件(不安装的话PostCSS不会生效)
  • 如何使用PostCSS呢?主要就是两个步骤:
    • 第一步:查找PostCSS在构建工具中的扩展,比如webpack中的postcss-loader
    • 第二步:选择可以添加你需要的PostCSS相关的插件
postcss-loader
  • 我们可以借助于构建工具:
    • 在webpack中使用postcss就是使用postcss-loader来处理的
  • 我们来安装postcss-loader:
npm install postcss-loader -D
  • 我们修改加载css的loader:(配置文件已经过多,给出一部分了)
    • 注意:因为postcss需要有对应的插件才会起效果,所以我们需要配置它的plugin;
{
    test:/\.css$/,//处理less文件
    use:[
      {loader:"style-loader"},
      {loader:"css-loader"},
      {loader:"postcss-loader",
       options:{//loader会读取这里面的内容,options是选项们的意思
         postcssOptions:{
           plugins:[//插件们
             "autoprefixer"//使用这个插件对loader做出某种转换(添加前缀的插件)
           ]
         }
       }
      }
    ]
}
单独的postcss配置文件
  • 因为我们需要添加前缀,所以要安装autoprefixer:

    npm install autoprefixer -D
    
  • 我们可以将这些配置信息放到一个单独的文件中进行管理:(就不会让上面配置文件里面套太多层了,看着都密密麻麻的)

    • 在根目录下创建postcss.config.js(名字不能乱改,会自动寻找到这个名字的文件,就我们前面说的从.js开始找,没找到就找.json,node文件)
//postcss.config.js文件
module.exports = {//暴露出去
  //不用写postcssOptions,因为这个不是独立起来的(没有独立于webpack),postcss内部会自动寻找到
  plugins:[
    require("autoprefixer")//引入
  ]
}
{
    test:/\.css$/,//处理less文件
    use:[
      {loader:"style-loader"},
      {loader:"css-loader"},
      {loader:"postcss-loader"}//然后默认填写就行了,因为我们在另外的配置文件中已经写了plugins的东西了,会自动去读取,less如果也想要处理的话,也要加上
    ]
}
postcss-preset-env
  • 事实上,在配置postcss-loader时,我们配置插件并不需要使用autoprefixer

  • 我们可以使用另外一个插件:postcss-preset-env

    • postcss-preset-env也是一个postcss的插件(因为有一些插件是使用postcss基本上都会使用的,所以postcss就将他集成了,叫做预设环境,已经包含了常用插件跟插件环境的配置了)
    • 它可以帮助我们将一些现代的CSS特性,转成大多数浏览器认识的CSS,并且会根据目标浏览器或者运行时环境添加所需的polyfill
    • 也包括会自动帮助我们添加autoprefixer(所以相当于已经内置了autoprefixer)
  • 首先,我们需要安装postcss-preset-env:

    npm install postcss-preset-env -D
    
  • 之后,我们直接修改掉之前的autoprefixer即可:

    plugins:[
      requires("postcss-preset-env")
    ]
    
  • 注意:我们在使用某些postcss插件时,也可以直接传入字符串

    module.exports = {
      plugins:[
        "postcss-preset-env"
      ]
    }
    
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值