美文网首页
vue3-h5-template postcss-px-to-

vue3-h5-template postcss-px-to-

作者: 醉笙情丶浮生梦 | 来源:发表于2022-04-26 15:38 被阅读0次

    https://github.com/yulimchen/vue3-h5-template

    原版写法
    vue.config.js

    module.exports = {
      ...
        css: {
        loaderOptions: {
          postcss: {
            plugins: [
              autoprefixer(),
              pxtoviewport({
                viewportWidth: designWidth, // 根据设计稿设定
                minPixelValue: 1, // 最小的转换数值
                unitPrecision: 2, // 转化精度,转换后保留位数
              }),
            ],
          },
        },
      },
    }
    

    package.json

     "postcss": {
        "plugins": {
          "autoprefixer": {}
        }
      },
    

    修改后
    根目录新建 postcss.config.js

    const path = require("path");
    
    module.exports = ({ webpack }) => {
      const designWidth = webpack.resourcePath.includes(
        path.join("node_modules", "vant")
      )
        ? 375
        : 750;
    
      return {
        plugins: {
          autoprefixer: {},
          "postcss-px-to-viewport": {
            unitToConvert: "px",
            viewportWidth: designWidth,
            unitPrecision: 6,
            propList: ["*"],
            viewportUnit: "vw",
            fontViewportUnit: "vw",
            selectorBlackList: [],
            minPixelValue: 1,
            mediaQuery: true,
            exclude: [],
            landscape: false,
          },
        },
      };
    };
    

    删除 vue.config.js 里 css 下面 postcss 那部分代码

    删除 package.json 里 postcss 那部分代码

    注释

    // postcss.config.js
    
    module.exports = {
      plugins: {
        'postcss-px-to-viewport': {
         unitToConvert: "px", // 要转化的单位       
         viewportWidth: 375, // UI设计稿的宽度       
         unitPrecision: 6, // 转换后的精度,即小数点位数       
         propList: ["*"], // 指定转换的css属性的单位,*代表全部css属性的单位都进行转换     
         viewportUnit: "vw", // 指定需要转换成的视窗单位,默认vw       
         fontViewportUnit: "vw", // 指定字体需要转换成的视窗单位,默认vw      selectorBlackList: ["wrap"], // 指定不转换为视窗单位的类名,       
         minPixelValue: 1, // 默认值1,小于或等于1px则不进行转换       
         mediaQuery: true, // 是否在媒体查询的css代码中也进行转换,默认false      
         replace: true, // 是否转换后直接更换属性值       
         exclude: [/node_modules/], // 设置忽略文件,用正则做目录名匹配       
        }
      }
    }
    

    参考:
    https://www.cnblogs.com/zhangnan35/p/12682925.html
    https://juejin.cn/post/7061866685166256142
    https://www.freesion.com/article/720265593/

    相关文章

      网友评论

          本文标题:vue3-h5-template postcss-px-to-

          本文链接:https://www.haomeiwen.com/subject/guthyrtx.html