zoukankan      html  css  js  c++  java
  • webpack结合postcss-loader实现css样式浏览器兼容前缀的添加

    1、引入添加兼容前缀库

    npm install postcss-loader autoprefixer@9.8.6 -D              //autoprefixer使用9.8.6版本,笔者亲测,兼容PostCSS依赖的版本。

    2、在项目根目录下创建postcss.config.js,配置如下:

    module.exports = {
        plugins: [
            require('autoprefixer')()
        ]
    }
    

    3、在package.json中要加上bowerlist实现兼容添加

      "browserslist": [
        "defaults",
        "not ie < 11",
        "last 2 versions",
        "> 1%",
        "iOS 7",
        "last 3 iOS versions"
      ],
    

    4、接下来就可以在webpack Module中新增rule

     {
                    test: /.((c|sa|sc)ss)$/i,
                    use: [
                        "style-loader",// 将 JS 字符串生成为 style 节点
                        {
                            loader: 'css-loader',
                            options: {
                                // 如果您需要在每个 CSS 的 `@import` 上运行 `sass-loader` 和 `postcss-loader`,请将其设置为 `2`,如果只需要运行postcss-loader ,只需要将importLoaders设置为1
                                importLoaders: 1,
                            },
                        },
                        "postcss-loader",    //自动为css添加前缀
                        "sass-loader"// 将 Sass 编译成 CSS
                    ]
                }

    注释:1、多引入了一个sass-loader,便于解析sass,如果不需要可以去掉.

       2、importLoaders,指的是在scss文件中引入另一个scss,重新执行sass-loader和postcss-loader。

       3、role是从下往上执行,也就是sass-loader -> postcss-loader -> css-loader -> style-loader,所以sass-loader要放在最后,并在postcss-loader的下面,只有解析出来scss,才能添加前缀

  • 相关阅读:
    line-height 对a标签在有些浏览器中不支持
    git 学习手记
    nth-child 与 nth-of-type区别
    less学习笔记(持续更新)
    如何让textarea的placeholder中的文字换行
    livereload 不刷新页面 保存文件后 浏览器自动重新刷新
    优雅降级元(CSS JS)
    vw vh vm CSS长度单位
    NODE_PATH的设置
    EF学习笔记(十二):EF高级应用场景
  • 原文地址:https://www.cnblogs.com/uimeigui/p/13862238.html
Copyright © 2011-2022 走看看