pug-lint-wb-loader
Version:
用于pug-lint的loader
38 lines (33 loc) • 1.32 kB
JavaScript
;
var PugLint = require('pug-lint');
var parse = require('./parse.js');
var getFullMessage = require('./message')
var webpack_util = require('loader-utils');
var util = require('util');
var linter = new PugLint();
var configured = false;
module.exports = function (content) {
const _this = this
_this.cacheable();
var config = webpack_util.getOptions(this);
if(!configured) linter.configure(parse(config));
var result = linter.checkString(content);
if(result.length) {
[this.emitError, this.emitWarning][config.emitError ? 0 : 1](result.sort(function (a, b) {
var line = a.line - b.line;
if(line == 0) return (a.column || 0) - (b.column || 0);
else return line;
}).map(function (problem) {
let errMsg = '\npug-lint报错信息\n' +
'报错规则: %s\n' +
'规则查询: %s\n' +
'报错消息: ' + getFullMessage(_this.resourcePath, content, problem.line, problem.column, problem.msg) + '\n'
return util.format(
errMsg,
problem.code.toLowerCase().replace(/^pug:/, '').replace(/^lint_/, ''),
'https://github.com/pugjs/pug-lint/blob/master/docs/rules.md',
);
}).join('\n\n'));
}
return content
}