安装postcss插件
npm install -D postcss-class-rename css-byebye
- postcss-class-rename 是将小程序不支持的css类重命名
- css-byebye 移除不支持的css类,比如:
* {}
tailwindcss配置移除不支持的css样式
module.exports = {
// Tree-shake unused styles in production build
purge: [\'./src/**/*.{vue,js,ts,jsx,tsx,html}\'],
// purge: [],
darkMode: false, // or \'media\' or \'class\'
theme: {
extend: {},
// Disable breakpoints
screen: {}
},
variants: {
extend: {},
},
plugins: [],
corePlugins: {
preflight: false,
space: false,
divideWidth: false,
divideColor: false,
divideStyle: false,
divideOpacity: false,
}
}
由于上面
space/divideWidth
等样式包含微信小程序不支持的写法:.className > :not([hidden]) ~ :not([hidden])
,所以移除。
uniapp 配置postcss.config.js
如下:
const path = require(\'path\')
module.exports = {
parser: require(\'postcss-comment\'),
plugins: [
require(\'postcss-import\')({
resolve(id, basedir, importOptions) {
if (id.startsWith(\'~@/\')) {
return path.resolve(process.env.UNI_INPUT_DIR, id.substr(3))
} else if (id.startsWith(\'@/\')) {
return path.resolve(process.env.UNI_INPUT_DIR, id.substr(2))
} else if (id.startsWith(\'/\') && !id.startsWith(\'//\')) {
return path.resolve(process.env.UNI_INPUT_DIR, id.substr(1))
}
return id
}
}),
/* ******* 引入tailwindcss ******* */
require(\'tailwindcss\')({}),
// // 根据平台差异进行不同的样式处理
...(
process.env.UNI_PLATFORM !== "h5"
? [
// 使用postcss-class-name 包将小程序不支持的类名转换为支持的类名
require("postcss-class-rename")({
"\\\\:": "--",
// "\\\\/": "--",
"\\\\.": "--",
".:": "--"
}),
require("css-byebye")({
rulesToRemove: [
/\*/
],
map: false
})
]
: [
require("autoprefixer")({
remove: true,
}),
]
),
/* ******* */
require(\'@dcloudio/vue-cli-plugin-uni/packages/postcss\')
]
}
/* ******* ******* */之间是关键配置