一套完整的原生小程序接入/重构到tailwind/windicss的方案, 支持分包及高度自定义配置
// cssMode 配置为 tailwindcss
// 完全支持tailwind cli原有参数
/// 优先级为mini cli参数 > 自定义 config 配置 > 默认 config 配置
mini build
mini build <...other tailwind cli args, can't use --input --output>
// cssMode 配置为 windicss
// 确认已提前安装windicss cli
npm i -g windicss
mini build
需要在项目的构建完成之后调用 accessWatch 暴露出来的方法
npm i
# watch project
npm run watch
因为基于原生小程序,所以同样适用任何小程序框架最终生成的原生代码(后处理)
/* 自定义配置 */
module.exports = {
// 小程序文件目录
miniprogramPath: './dist/wx',
// 'tailwindcss' 'windicss'
classMode: 'tailwindcss',
// 样式生成策略
cssMode: {
mainPackage: true,
subPackage: true,
// 置空则默认处理所有分包
specSubPackage: ['subpackage name1', 'subpackage name2']
}
}
mainPackage主包 | subPackage分包 | specSubPackage指定分包 | 输出到 |
---|---|---|---|
true | false | [ ] | 主包 |
true | true | [ ] | 主包+全部分包 |
true | true | ['subPackageName'] | 主包+指定分包 |
false | true | [ ] | 分包 |
false | true | ['subPackageName'] | 指定分包 |
├── lib
│ ├── processSubpackage.ts // 核心流程:按分包输出样式 + postcss插件提重
│ ├── accessWatch.ts // watch & rebuild
├── presets // 针对小程序场景的内置预设
│ ├── tailwindPreset // tailwind 预设集
│ └── windiPrset // windicss 预设集
├── customStyle // 用户自定义原子类
│ ├──subpackageName // 根据app.json的扫描得到的分包自动生成目录
├── postcssPlugin // postcss 定制插件集
│ ├── autoInfer // 动态值替换插件
│ └── extractCommon // 重复类提取插件
├── utils // 工具集
│ ├── extractPlugin // 用于提重的postcss插件
│ ├── refactHelper // 自动重构工具
├── config.ts // 用户配置文件(例如选择tail或windi/是否分包处理)
├── index.ts // config.js 处理 & cli配置
└── example // demo(自带分包+测试类)