PostCSS Wxss

PostCSS plugin for wxss.

专门为 wxss 格式化处理的的一个 postcss 插件,特别是在做 css 转 wxss 的时候好用到爆。

实现的功能

  • 清理 wxss 不支持的选择器。
  • 清理 wxss 不支持的注释。
  • 转换 rem 单位到 rpx。
  • 转换 Web 的标签选择器到小程序的 class 选择器。
  • style scoped(postcss插件部分)。

例子

  1. /* 被清理 */
  2. * {
  3. margin: 100px
  4. }
  5. /* 保持原样 */
  6. view {
  7. width: 50rpx;
  8. }
  9. .container {
  10. width: 7.5rem;
  11. font-size: .24rem
  12. }
  13. /* Web 标签转换 */
  14. div {
  15. width: 50rpx;
  16. }
  17. ul li {
  18. width: 50rpx;
  19. }
  20. body {
  21. width: 50rpx;
  22. }
  1. view {
  2. width: 50rpx;
  3. }
  4. .container {
  5. width: 50rpx;
  6. font-size: 24.4rpx
  7. }
  8. ._div {
  9. width: 50rpx;
  10. }
  11. ._ul ._li {
  12. width: 50rpx;
  13. }
  14. page {
  15. width: 50rpx;
  16. }

Usage

  1. postcss([ require('postcss-mpvue-wxss') ])

or use .postcssrc.js

  1. // https://github.com/michael-ciniawsky/postcss-load-config
  2. const optopns = {}
  3. module.exports = {
  4. "plugins": {
  5. // to edit target browsers: use "browserslist" field in package.json
  6. "postcss-mpvue-wxss": optopns
  7. }
  8. }

with options:

  1. const replaceTagSelectorMap = require('postcss-mpvue-wxss/lib/wxmlTagMap')
  2. const optopns = {
  3. cleanSelector: ['*'],
  4. remToRpx: 100,
  5. replaceTagSelector: Object.assign(replaceTagSelectorMap, {
  6. '*': 'view, text' // 将覆盖前面的 * 选择器被清理规则
  7. })
  8. }

See PostCSS docs for examples for your environment.