如何使用 stylelint 为 Jenkins 生成 checkstyle.xml?

How to generate a checkstyle.xml for Jenkins with stylelint?

我想知道如何使用 stylelint 为 Jenkins 生成 checkstyle.xml。在网上搜索了一下,遗憾地只找到 stylelint-checkstyle-formatter,但只有以下 "instruction":

Simply read the stylelint documentation about using formatters and follow those instructions.

再次遗憾,我在 documentation...

中什么也没找到

我终于找到了一种方法(使用 gulp)并希望在 Whosebug 上分享它。

首先安装以下依赖:

yarn add -D stylelint gulp-stylelint stylelint-checkstyle-formatter stylelint-scss stylelint-config-recommended-scss

然后使用以下 gulp 任务:

gulp.task("scss-lint", function() {
    const gulpStylelint = require('gulp-stylelint');
    const stylelintCheckstyleFormatter = require('stylelint-checkstyle-formatter');

    return gulp
        .src('src/**/*.scss')
        .pipe(gulpStylelint({
            reportOutputDir: 'build/reports/scss-checkstyle',
            reporters: [
                {formatter: 'verbose', console: true},
                {formatter: stylelintCheckstyleFormatter, save: 'checkstyle.xml'},
            ],
        }));
});

最后是我的 .stylelint:

{
    "extends": "stylelint-config-recommended-scss",
    "defaultSeverity": "warning",
    "formatter": "stylelint-checkstyle-formatter",
    "plugins": [
        "stylelint-scss"
    ],
        "rules": {
        "indentation": 4,
            "color-hex-length": null,
            "shorthand-property-no-redundant-values": null,
            "no-missing-end-of-source-newline": null,
            "declaration-empty-line-before": null,
            "at-rule-empty-line-before": null,
            "selector-type-no-unknown": [
            true,
            {
                "ignore": ["custom-elements"],
                "ignoreTypes": ["tooltip"]
            }
        ]
    }
}

我通过 CLI 安装 stylelint-checkstyle-formatter 插件,然后使用 --custom-formatter 选项将其传递给 stylelint:

npm install stylelint-checkstyle-formatter --save-dev
stylelint --custom-formatter ./node_modules/stylelint-checkstyle-formatter ....