stylelint工具如何使用(css相关)

css并不算一种严格意义上的编程语言,但在前端系统中不可小觑。css是以描述为主的样式表,如果描述混乱,没有规则,对其他开发人员,尤其是有强迫症的开发人员来说,肯定是一个定时炸弹。css看起来很简单,但是写出漂亮的 css还是很难。因此,校验 CSS规则的实施刻不容缓。Stylelint是一个强大的现代 CSS检测器,它允许开发人员遵循一致的惯例并避免样式表中的错误。这篇文章详细介绍了 CSS代码检查工具 stylelint

概述
stylelint拥有超过150条的规则,包括捕捉错误、最佳实践、控制可以使用的语言特性和强制代码风格规范。它支持最新的CSS语法,并且灵活可配置

Vue
下面在Vue框架下安装使用stylelint

1、安装stylelint、stylint-config-standard和stylelint-order

1
2
3
npm install stylelint --save-dev
npm install stylelint-config-standard --save-dev
npm install stylelint-order --save-dev
其中,stylelint是运行工具,stylelint-config-standard是stylelint的推荐配置,stylelint-order是CSS属性排序插件

安装完成后,package.json文件中会自动添加如下字段

1
2
3
“stylelint”: “^9.1.3”,
“stylelint-config-standard”: “^18.2.0”,
“stylelint-order”: “^0.8.1”,
2、在根目录下创建.stylelintrc配置文件

{
“extends”: “stylelint-config-standard”,
“plugins”: [“stylelint-order”],
“rules”: {
“order/order”: [
“declarations”,
“custom-properties”,
“dollar-variables”,
“rules”,
“at-rules”
],
“order/properties-order”: [
“position”,
“z-index”,
“top”,
“bottom”,
“left”,
“right”,
“float”,
“clear”,
“columns”,
“columns-width”,
“columns-count”,
“column-rule”,
“column-rule-width”,
“column-rule-style”,
“column-rule-color”,
“column-fill”,
“column-span”,
“column-gap”,
“display”,
“grid”,
“grid-template-rows”,
“grid-template-columns”,
“grid-template-areas”,
“grid-auto-rows”,
“grid-auto-columns”,
“grid-auto-flow”,
“grid-column-gap”,
“grid-row-gap”,
“grid-template”,
“grid-template-rows”,
“grid-template-columns”,
“grid-template-areas”,
“grid-gap”,
“grid-row-gap”,
“grid-column-gap”,
“grid-area”,
“grid-row-start”,
“grid-row-end”,
“grid-column-start”,
“grid-column-end”,
“grid-column”,
“grid-column-start”,
“grid-column-end”,
“grid-row”,
“grid-row-start”,
“grid-row-end”,
“flex”,
“flex-grow”,
“flex-shrink”,
“flex-basis”,
“flex-flow”,
“flex-direction”,
“flex-wrap”,
“justify-content”,
“align-content”,
“align-items”,
“align-self”,
“order”,
“table-layout”,
“empty-cells”,
“caption-side”,
“border-collapse”,
“border-spacing”,
“list-style”,
“list-style-type”,
“list-style-position”,
“list-style-image”,
“ruby-align”,
“ruby-merge”,
“ruby-position”,
“box-sizing”,
“width”,
“min-width”,
“max-width”,
“height”,
“min-height”,
“max-height”,
“padding”,
“padding-top”,
“padding-right”,
“padding-bottom”,
“padding-left”,
“margin”,
“margin-top”,
“margin-right”,
“margin-bottom”,
“margin-left”,
“border”,
“border-width”,
“border-top-width”,
“border-right-width”,
“border-bottom-width”,
“border-left-width”,
“border-style”,
“border-top-style”,
“border-right-style”,
“border-bottom-style”,
“border-left-style”,
“border-color”,
“border-top-color”,
“border-right-color”,
“border-bottom-color”,
“border-left-color”,
“border-image”,
“border-image-source”,
“border-image-slice”,
“border-image-width”,
“border-image-outset”,
“border-image-repeat”,
“border-top”,
“border-top-width”,
“border-top-style”,
“border-top-color”,
“border-top”,
“border-right-width”,
“border-right-style”,
“border-right-color”,
“border-bottom”,
“border-bottom-width”,
“border-bottom-style”,
“border-bottom-color”,
“border-left”,
“border-left-width”,
“border-left-style”,
“border-left-color”,
“border-radius”,
“border-top-right-radius”,
“border-bottom-right-radius”,
“border-bottom-left-radius”,
“border-top-left-radius”,
“outline”,
“outline-width”,
“outline-color”,
“outline-style”,
“outline-offset”,
“overflow”,
“overflow-x”,
“overflow-y”,
“resize”,
“visibility”,
“font”,
“font-style”,
“font-variant”,
“font-weight”,
“font-stretch”,
“font-size”,
“font-family”,
“font-synthesis”,
“font-size-adjust”,
“font-kerning”,
“line-height”,
“text-align”,
“text-align-last”,
“vertical-align”,
“text-overflow”,
“text-justify”,
“text-transform”,
“text-indent”,
“text-emphasis”,
“text-emphasis-style”,
“text-emphasis-color”,
“text-emphasis-position”,
“text-decoration”,
“text-decoration-color”,
“text-decoration-style”,
“text-decoration-line”,
“text-underline-position”,
“text-shadow”,
“white-space”,
“overflow-wrap”,
“word-wrap”,
“word-break”,
“line-break”,
“hyphens”,
“letter-spacing”,
“word-spacing”,
“quotes”,
“tab-size”,
“orphans”,
“writing-mode”,
“text-combine-upright”,
“unicode-bidi”,
“text-orientation”,
“direction”,
“text-rendering”,
“font-feature-settings”,
“font-language-override”,
“image-rendering”,
“image-orientation”,
“image-resolution”,
“shape-image-threshold”,
“shape-outside”,
“shape-margin”,
“color”,
“background”,
“background-image”,
“background-position”,
“background-size”,
“background-repeat”,
“background-origin”,
“background-clip”,
“background-attachment”,
“background-color”,
“background-blend-mode”,
“isolation”,
“clip-path”,
“mask”,
“mask-image”,
“mask-mode”,
“mask-position”,
“mask-size”,
“mask-repeat”,
“mask-origin”,
“mask-clip”,
“mask-composite”,
“mask-type”,
“filter”,
“box-shadow”,
“opacity”,
“transform-style”,
“transform”,
“transform-box”,
“transform-origin”,
“perspective”,
“perspective-origin”,
“backface-visibility”,
“transition”,
“transition-property”,
“transition-duration”,
“transition-timing-function”,
“transition-delay”,
“animation”,
“animation-name”,
“animation-duration”,
“animation-timing-function”,
“animation-delay”,
“animation-iteration-count”,
“animation-direction”,
“animation-fill-mode”,
“animation-play-state”,
“scroll-behavior”,
“scroll-snap-type”,
“scroll-snap-destination”,
“scroll-snap-coordinate”,
“cursor”,
“touch-action”,
“caret-color”,
“ime-mode”,
“object-fit”,
“object-position”,
“content”,
“counter-reset”,
“counter-increment”,
“will-change”,
“pointer-events”,
“all”,
“page-break-before”,
“page-break-after”,
“page-break-inside”,
“widows”
],
“no-empty-source”: null,
“property-no-vendor-prefix”: [true, {“ignoreProperties”: [“background-clip”]}],
“number-leading-zero”: “never”,
“number-no-trailing-zeros”: true,
“length-zero-no-unit”: true,
“value-list-comma-space-after”: “always”,
“declaration-colon-space-after”: “always”,
“value-list-max-empty-lines”: 0,
“shorthand-property-no-redundant-values”: true,
“declaration-block-no-duplicate-properties”: true,
“declaration-block-no-redundant-longhand-properties”: true,
“declaration-block-semicolon-newline-after”: “always”,
“block-closing-brace-newline-after”: “always”,
“media-feature-colon-space-after”: “always”,
“media-feature-range-operator-space-after”: “always”,
“at-rule-name-space-after”: “always”,
“indentation”: 2,
“no-eol-whitespace”: true,
“string-no-newline”: null
}
}
3、使用stylelint验证CSS代码即可,如验证src目录下的所有vue文件

react
react中使用styled-components来书写CSS代码,stylelint同样提供了插件来校验CSS

1、安装stylelint、stylelint-processor-styled-components、stylelint-config-styled-components、stylelint-config-recommend、stylelint-order

1
2
3
4
5
npm install --save-dev stylelint@9.1.3
npm install --save-dev stylelint-processor-styled-components
npm install --save-dev stylelint-config-styled-components
npm install --save-dev stylelint-config-recommended
npm install --save-dev stylelint-order
注意: 由于stylelint更新到9.2版本后,导致styled-components中的CSS代码无法正常校验,所以稳妥起见,使用9.1.3版本的

2、在根目录下新建配置文件.stylelintrc

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
“processors”: [“stylelint-processor-styled-components”],
“extends”: [
"stylelint-config-recommended-www.googlegoojle.com ",
“stylelint-config-styled-components”
],
“plugins”: [“stylelint-order”],
“rules”: {
“order/order”: [
“declarations”,
“custom-properties”,
“dollar-variables”,
“rules”,
“at-rules”
],

}
3、同样地,使用stylelint命令即可校验

注意事项

1、fix命令

在stylelint的150多条规则中,使用fix命令,可以自动修复一些命令。但是,该fix命令一定要慎用。笔者在使用fix命令后,stylelint将React工程中的所有js文件里的代码全部清除,只留着了下可以识别的css部分

1
stylelint ‘**/*.js’ --fix
2、配置scripts

可以在package.json中配置stylelint的快捷方式

1
2
3
“scripts”: {
“lintcss”: “stylelint ‘src/**/*.js’”
}
这样,使用npm run lintcss 命令即可实现相同效果

3、如果提示如下错误

1
Error: No configuration provided for

是因为在根路径下没有发现配置文件,如.stylelintrc

更多编程内容可关注脚本之家

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
要在Vue2项目中使用stylelint,您可以按照以下步骤进行操作: 1. 使用npm或者yarn安装必要的依赖包,包括stylelintstylelint-config-recommended-vue、stylelint-config-standard、stylelint-config-prettier、stylelint-orderstylelint-less、postcss-html和postcss-less@4.0.0(请确保安装的版本是4.0.0,以避免出现错误)。 [1] 2. 在项目的根目录中创建一个名为.stylelintrc.js的文件,并在其中配置stylelint。您可以根据自己的需求选择不同的配置,但一般建议继承stylelint-config-standard和stylelint-config-recommended-vue。配置示例可以参考stylelint官方文档。 3. 在项目的构建工具(如webpack)中添加stylelint的插件或loader,以确保在构建过程中对样式文件进行lint检查。具体的配置方式取决于您使用的构建工具和插件。 4. 运行lint命令,以检查项目中的样式文件是否符合lint规则。您可以配置lint命令在开发过程中自动运行,以便及时发现和修复样式问题。 请注意,以上步骤是一般的指导,具体的实施细节可能会因项目的配置和需求而有所不同。如果您有特定的问题,请参考相应的文档或寻求相关的技术支持。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [vue2项目配置prettier + eslint + commitlint + stylelint](https://blog.csdn.net/Sharon598/article/details/126782174)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值