- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
PostCSS BEM Linter插件需求component definition对于每个 block ,这在遗留项目中是一件耗时的事情。
有没有办法使用 stylelint检查类模式并在项目的所有样式表(在我的例子中为 .scss)中显示错误,而不需要在每个文件/ block 中定义组件?
https://csswizardry.com/2013/01/mindbemding-getting-your-head-round-bem-syntax/
.block {}
.block__element {}
.block--modifier {}
最佳答案
我有一个来自 @jeddy3 答案的工作示例。
这是我的 stylelint.config.js
我们重写取自 https://github.com/postcss/postcss-bem-linter/blob/master/lib/preset-patterns.js 的 bemSelector()
函数。
我们通过更改 const 修饰符
来匹配,使用两个破折号样式而不是默认的 BEM https://en.bem.info/methodology/naming-convention/#two-dashes-style
/**
* @param {String} block
* @param {Object} [presetOptions]
* @param {String} [presetOptions.namespace]
* @returns {RegExp}
*/
const bemSelector = (block, presetOptions) => {
const ns = (presetOptions && presetOptions.namespace) ? `${presetOptions.namespace}-` : '';
const WORD = '[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*';
const element = `(?:__${WORD})?`;
const modifier = `(?:--${WORD}){0,2}`;
const attribute = '(?:\\[.+\\])?';
return new RegExp(`^\\.${ns}${block}${element}${modifier}${attribute}$`);
}
module.exports = {
extends: 'stylelint-config-recommended-scss',
plugins: [
'stylelint-selector-bem-pattern'
],
rules: {
'plugin/selector-bem-pattern': {
preset: 'bem',
componentSelectors: bemSelector
}
}
}
关于sass - 如何使用 stylelint 来检查 Harry Robert 的 BEM 约定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43272640/
stylelint *.css --fix 未按预期工作。错误报告工作正常,但文件未修复。 package.json { "devDependencies": { "stylelint":
我刚刚在一个看起来像这样的文件上遇到了两个 stylelint 错误 .link { position: absolute; top: var(--spacing-l); left: va
我想在媒体查询中使用 max-width 时发出警告/错误,并鼓励使用 min-width 的移动优先方法。 我可以警告/错误... @media (max-width: 50em) { padd
我想在媒体查询中使用 max-width 时发出警告/错误,并鼓励使用 min-width 的移动优先方法。 我可以警告/错误... @media (max-width: 50em) { padd
我已经使用 stylelint-gulp 一段时间了,没有任何问题。我在我的项目中将 stylelint 作为 npm devDependancy(即不是全局的,因为我不希望它是全局的)加载,并遵循
我已经使用 stylelint-gulp 一段时间了,没有任何问题。我在我的项目中将 stylelint 作为 npm devDependancy(即不是全局的,因为我不希望它是全局的)加载,并遵循
我正在react项目上安装stylelint-config-styled-components。 当我执行 npm run lint:css (或直接通过 CLI 使用 stylelint 命令)时,
在 package.json 中给出以下内容: “stylelint”:{ “扩展”:“stylelint-config-standard”, “规则”:{ “字符串引号”:“单”, “ block
我正在尝试使用 stylelint 对 BEM 样式进行 lint和 stylelint-selector-bem-pattern plugin但无法让它工作。 我的配置如下: 节点:5.11.0 g
我今天有点不知所措。我想将 Stylelint 添加到我的 Angular 项目中,所以我运行了 npm install stylelint stylelint-config-standard --s
我正在使用标准格式的 stylelint stylelint-config-standard我的样式表经常遇到这个错误: no-descending-specificity 它发生的一个例子是当我有
有没有stylelint rule如果只有一个属性,它可以强制选择器和属性在同一行。 例如,这会出错: .foo{ color: #111; } 因为我们希望它看起来像这样: .foo{ colo
在一个元素中,我们有自定义模板字符串来抽象样式组件功能。例如,我们有媒体查询的模板字符串,如下所示: // Definition const for1080p = (...args) => css`
我将 StyleLint 与 Webpack 结合使用。 我当前的 Webpack 配置是: module.exports.styleLint = (isProd = false) => { co
这是关于 stylelint 的。 我正在寻找一种解决方案来将特定选择器的使用列入黑名单 html[dir="rtl"] { //some css } 有一条规则可以阻止特定属性 Link.
我正在使用“selector-class-pattern”stylelint 规则。我使用的模式是强制执行 ECSS命名标准。规则如下所示: "selector-class-pattern": ["^
是否有stylelint规则获取以下内容? 我已经阅读了文档,但我并没有找不到 /* bad */ a { color: pink; } /* good */ a { color: pink;
是否可以在启用 styled-components 处理器的情况下全局关闭插值中的 stylelint linting?我的 eslint 配置应该适用于这种情况,我不希望我的 stylelint 配
我查看了 stylelint 的文档,只看到了一种禁用 stylelint 以在特定文件/目录上运行的方法,但我真正想要的是一种禁用特定文件/目录的特定规则的方法。有没有办法实现这一目标?我不想用 s
我最近设置了 Stylelint 来运行我的样式表,但是它抛出了一个错误,我宁愿保持原样: 错误是我没有在 { 之前使用一个空格,虽然为了易读性我希望这对大多数其他实例都是正确的,但我希望保留这个空格
我是一名优秀的程序员,十分优秀!