Gulp 让sass-lint忽略某行?

4c8rllxm  于 2022-12-08  发布在  Gulp
关注(0)|答案(4)|浏览(186)

我在Gulp中使用 * sass -lint。如何从lint控制台输出中禁用sass中特定样式的警告?
我发现了一个类似的问题,但我使用的是sass-lint,而不是scss-lint:Having scss-lint ignore a particular line
这是我正在使用的:https://www.npmjs.com/package/gulp-sass-lint
我已经尝试了一些基于
scss*-lint项目的变体:

// scss-lint:disable ImportantRule
// sass-lint:disable ImportantRule
// sass-lint:disable no-important

需要说明的是,我希望在我的SASS中禁用特定样式的警告,而不是全局性的。当触发警告的东西是有意的时候,我会使用这个。例如,我可能会设置多个背景样式,这样一个可以作为旧浏览器的后备。但是目前这会触发no-duplicate-properties警告。

9gm1akwq

9gm1akwq1#

通过注解禁用

2016年12月更新根据文档,现在可以使用以下语法:
对整个文件禁用多个规则

// sass-lint:disable border-zero, quotes

p {
  border: none; // No lint reported
  content: "hello"; // No lint reported
}

禁用单行规则

p {
  border: none; // sass-lint:disable-line border-zero
}

禁用一个块(以及包含的所有块)内的所有lint

p {
  // sass-lint:disable-block border-zero
  border: none; // No result reported
}

新信息由评论者@IanRoutledge提供。

然而,**之前,如果您想禁用某些规则,但仅针对特定的代码块和/或代码片段。* 就我所能tell * from the underlying source code而言,这 * 不 * 可能与sass-lint一起使用。我也尝试了一些其他搜索,并大致浏览了代码库,但没有发现您正在寻找的功能存在的提示。

作为比较,this query for the scss-lint source code清楚地表明它 * 是 * 在那里实现的,在您正在使用的lib中似乎没有类似的解决方案。

通过yml配置禁用

你可以禁用规则。你需要一个.sass-lint.yml文件来禁用警告。
假设您有gulpfile.js

'use strict';

var gulp = require('gulp'),
    sassLint = require('gulp-sass-lint');

gulp.task('default', [], function() {
  gulp.src('sass/*.scss')
    .pipe(sassLint())
    .pipe(sassLint.format())
    .pipe(sassLint.failOnError());
});

而这个package.json

{
  "devDependencies": {
    "gulp": "^3.9.0",
    "gulp-sass": "^2.1.1",
    "gulp-sass-lint": "^1.1.1"
  }
}

在此styles.scss文件上运行:

div { dsply: block; }

您会得到以下输出:

[23:53:33] Using gulpfile D:\experiments\myfolder\gulpfile.js
[23:53:33] Starting 'default'...
[23:53:33] Finished 'default' after 8.84 ms

sass\styles.scss
  1:7   warning  Property `dsply` appears to be spelled incorrectly  no-misspelled-properties
  1:21  warning  Files must end with a new line                      final-newline

??? 2 problems (0 errors, 2 warnings)

现在,如果在gulpfile旁边添加一个.sass-lint.yml文件,其内容如下:

rules:
  no-misspelled-properties: 0

您将看到:

[23:54:56] Using gulpfile D:\experiments\myfolder\gulpfile.js
[23:54:56] Starting 'default'...
[23:54:56] Finished 'default' after 9.32 ms

sass\styles.scss
  1:21  warning  Files must end with a new line  final-newline

??? 1 problem (0 errors, 1 warning)

现在忽略其中一个警告。
The sass-lint readme.md链接到the apparent default config,后者有更多示例。

zzwlnbp8

zzwlnbp82#

从sass-lint 1.10.0开始,可以通过源代码注解禁用sass-lint规则
下面是它的不同排列,有意地几乎与之前的scss-lint方式相同。

禁用整个文件的规则

// sass-lint:disable border-zero
p {
  border: none; // No lint reported
}

禁用多个规则

// sass-lint:disable border-zero, quotes
p {
  border: none; // No lint reported
  content: "hello"; // No lint reported
}

禁用单行规则

p {
  border: none; // sass-lint:disable-line border-zero
}

禁用一个块(以及包含的所有块)中的所有lint

p {
  // sass-lint:disable-block border-zero
  border: none; // No result reported
}

a {
  border: none; // Failing result reported
}

禁用并再次启用

// sass-lint:disable border-zero
p {
  border: none; // No result reported
}
// sass-lint:enable border-zero

a {
  border: none; // Failing result reported
}

禁用/启用所有触发器

// sass-lint:disable-all
p {
  border: none; // No result reported
}
// sass-lint:enable-all

a {
  border: none; // Failing result reported
}

sass-lint自述文件包含所有详细信息,docs也已更新。
grunt,gulp和atom插件都已经更新了,需要v1.10和更高版本,所以快速重新安装这些插件或更新,你就可以开始了。
我们很抱歉它花了这么长时间才出来,但我们必须解决我们的AST中的一些问题之前,我们有信心他们是有用的。

ohfgkhjo

ohfgkhjo3#

自sass-lint 1.10起支持禁用特定行的去屑规则。
https://github.com/sasstools/sass-lint#disabling-linters-via-source
到目前为止,sass-lint还不支持在每个文件或每行的基础上禁用规则。它们有一个long-standing GitHub issue跟踪该特性。

s4n0splo

s4n0splo4#

抓到你了
首先,下面列出了sass-lint的规则:
https://github.com/sasstools/sass-lint/tree/develop/lib/rules
接下来,您可以为所需的规则设置选项:

rule:
    severity: 0

0 =未写入任何内容
1 =警告
2 =错误
这是你需要的吗?

相关问题