共计 1654 个字符,预计需要花费 5 分钟才能阅读完成。
网上找了很多文章,但也没看到几个是实用的,而且很多是 2017 年左右的文章,用到的技术
postcss-cssnext
曾经被弃用,目前应用postcss-preset-env
替换,但这个插件不欠缺,或者是我没找到解决办法,存在一部分问题,但应用 BEM 写法是没什么问题的。
BEM 写法示例:
<template>
<div class="ga-home__container">
...
</div>
</template>
<style>
@component-namespace ga {
@b home {
@e container {
width: 100%;
height: 100%;
color: #a2eeff;
}
}
} </style>
vue2.x 配置 BEM
应用到插件 postcss-salad
进行配置;
在目录.postcssrc.js,配置 postcss-salad 即可;
// 应用的版本号
// "postcss": "^5.2.17",
// "postcss-salad": "^1.0.8",
// .postcssrc.js
var salad = require('postcss-salad')
module.exports = {
"plugins": [
// to edit target browsers: use "browserlist" field in package.json
salad({browser: ['ie > 9', 'last 2 version'],
features: {
'bem': {
'shortcuts': {
'component': 'b',
'modifier': 'm',
'descendent': 'e'
},
'separators': {
'descendent': '__',
'modifier': '--'
}
}
}
})
]
}
vue-cli3 配置 BEM 写法
应用到的插件 postcss-bem-fix
、postcss-preset-env
;
【留神】:postcss-bem
比方旧版,目前舍不得 postcss-bem-fix
能够查看以下文章:
《postss-bem version is too low》
《弃用 cssnext》
// 应用的版本号
// "postcss-bem-fix": "^2.1.0",
// "postcss-preset-env": "^6.7.0"
const POSBEM = require('postcss-bem-fix')
const POSENV = require('postcss-preset-env')
module.exports = {
plugins: [
POSBEM({
style: 'suit', // suit or bem, suit by default,
separators: {
'descendent': '__',
'modifier': '--'
},
shortcuts: {
'component': 'b',
'modifier': 'm',
'descendent': 'e'
}
}),
POSENV({browsers: ['> 1%', 'last 2 versions'],
stage: 4,
preserve: false, // instruct all plugins to omit pre-polyfilled CSS
features: {'custom-properties': true},
"autoprefixer": {}})
]
}
配置 vue-cli3 应用 BEM 写法遇到的问题
装置 postcss-bem-fix 后,发现 var 无奈沉迷:root 外面的值;
解决办法:须要应用 postcss-preset-env
配置
css 渲染时,值从新渲染问题;
解决办法:postcss-preset-env
只有把配置 preserve:false
即可;
以下问题是还没找到解决办法的
BEM 写法外面嵌套 css 时,发现无奈渲染
查看了postcss-preset-env
所有规定featuress
配置,但还是无奈解决;
《【postcss-preset-env】features 配置列表》
背景色应用十六进制色彩码没有转换,导致无奈进行渲染;
正文完