UNPKG

pug-lint-wb-loader

Version:

用于pug-lint的loader

38 lines (33 loc) 1.32 kB
'use strict'; 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 }