craco学习: 项目中添加 px2rem/postcss 插件

一个重要的转化插件,方便移动端适配
更新于: 2024-02-23 09:31:33

背景

  • cra5 搭建的项目
  • styled-component: 需要用 babel 插件
  • tailwind (这个天然处理好了,不用管)
  • 普通的css,使用 postcss 插件处理

技术选型

  • 主流
  • github star 最多
名称理由
针对常规css

postcss-pxtorem

github 上目前 star 最多,考虑较为周全,很多主流适配

针对 styled-components

babel-plugin-styled-components-px2rem

应用了上面的插件,共用一套配置

核心依赖

{
  "babel-plugin-styled-components-px2rem": "^1.5.5",
  "postcss-pxtorem": "^6.0.0"
}

核心配置

craco 的配置,针对 postcss/styled-components

const px2remOptions = {
  rootValue: 10, // 根元素字体大小
  propList: ['*']
};

export default {
  // ... other options
  babel: {
    plugins: [['styled-components-px2rem', px2remOptions]]
  },
  style: {
    postcss: {
      mode: 'extends',
      loaderOptions: {
        postcssOptions: {
          ident: 'postcss',
          plugins: [['postcss-pxtorem', px2remOptions]]
        }
      }
    }
  }
};

默认配置

  • 我的配置: rootValue: 10
{
    rootValue: 16,
    unitPrecision: 5,
    propList: ['font', 'font-size', 'line-height', 'letter-spacing'],
    selectorBlackList: [],
    replace: true,
    mediaQuery: false,
    minPixelValue: 0,
    exclude: /node_modules/i
}

参考