样式处理部分配置问题
appbest opened this issue · 11 comments
这是一个非常不错的开发环境,实际使用中,遇到了样式问题,卡住了。
请大神解救:
尝试写demo 适应 h5 与微信,使用了 rem作为单位。
运行双环境时,rem 被转为了 rpx
导致 h5 运行时,无法识别此单位,
找了好久都没找到相关的配置处理办法。
可以参考 ithome-lite 这个项目,有空会整合进来
参考了,能方便加个微信么
单位转换,还是没有找到
你那个邮箱可以用么,我发你
rem 被转为了 rpx 就是 postcss-mpvue-wxss 这个插件处理的,h5 模式下禁用掉就好了
关于根目下 .postcssrc.js 配置已经改了,还是不行
/**样式转化配置
* 清理 wxss 不支持的选择器。
* 清理 wxss 不支持的注释。
* 转换 rem 单位到 rpx。
* 转换 Web 的标签选择器到小程序的 class 选择器。
* style scoped(postcss插件部分)。
* http://mpvue.com/build/postcss-mpvue-wxss/
* https://github.com/michael-ciniawsky/postcss-load-config
*/
module.exports =
process.env.MODE === 'mp'
? {
plugins: {
'postcss-mpvue-wxss': {
// 小程序打包
// css 单位处理设置
cleanSelector: ['*'],
//缩放比例
//remToRpx: 400
// replaceTagSelector: Object.assign(replaceTagSelectorMap, {
// '*': 'view, text' // 将覆盖前面的 * 选择器被清理规则
// })
remToRpx: 400,
replaceTagSelector: Object.assign(replaceTagSelectorMap, {
'*': 'view, text' // 将覆盖前面的 * 选择器被清理规则
})
}
}
}
: {
plugins: {
'postcss-import': {},
'postcss-url': {},
// to edit target browsers: use "browserslist" field in package.json
autoprefixer: {}
}
}
直接导出 h5 的配置呢,你用的模板是 master 分支的吧
{
plugins: {
'postcss-import': {},
'postcss-url': {},
// to edit target browsers: use "browserslist" field in package.json
autoprefixer: {}
}
}
应该是 加一个判断,是 h5模式,就不用 转换
是小程序 mp 模式,就用转换
module.exports =process.env.MODE === 'mp'? {mp配置}:{ h5 配置}
备注一下,使用 cross-env 配置
npm i -D cross-env
修改 package.js
"scripts": { "start": "npm run dev", "dev": "mpvue dev --pages src/router/routes.js", "build": "mpvue build --pages src/router/routes.js", "dev:h5": "cross-env MODE=h5 mpvue dev --mode h5 --config webpack.conf.h5.js", "build:h5": "cross-env MODE=h5 mpvue build --mode h5 --config webpack.conf.h5.js", "lint": "eslint --ext .js,.vue src" },
之前的代码好像没发布,现在 mpvue-builder 已经会直接注入 process.env.MODE
这个变量了,参见 https://github.com/F-loat/mpvue-packager/blob/master/bin/index.js#L16