...
|
...
|
@@ -3,15 +3,19 @@ const path = require('path'); |
|
|
|
|
|
const changeFiles = {
|
|
|
js: shelljs.exec('git diff --cached --name-only --diff-filter=ACM | grep .js$', {silent: true}).stdout,
|
|
|
css: shelljs.exec('git diff --cached --name-only --diff-filter=ACM | grep .css$', {silent: true}).stdout
|
|
|
css: shelljs.exec('git diff --cached --name-only --diff-filter=ACM | grep .css$', {silent: true}).stdout,
|
|
|
vue: shelljs.exec('git diff --cached --name-only --diff-filter=ACM | grep .vue$', {silent: true}).stdout,
|
|
|
};
|
|
|
|
|
|
const lintPath = {
|
|
|
js: path.resolve('./node_modules/.bin/eslint'),
|
|
|
css: path.resolve('./node_modules/.bin/stylelint')
|
|
|
};
|
|
|
const lintResult = {
|
|
|
js: {},
|
|
|
css: {}
|
|
|
css: {},
|
|
|
vueScript: {},
|
|
|
vueStyle: {}
|
|
|
};
|
|
|
|
|
|
const ext = process.platform === 'win32' ? '.cmd' : ''; // Windows 平台需要加后缀
|
...
|
...
|
@@ -28,9 +32,17 @@ if (changeFiles.js) { |
|
|
|
|
|
if (changeFiles.css) {
|
|
|
changeFiles.css = changeFiles.css.replace(/\n/g, ' ');
|
|
|
lintResult.css = shelljs.exec(`${lintPath.css}${ext} --config .stylelintrc ${changeFiles.css}`);
|
|
|
lintResult.css = shelljs.exec(`${lintPath.css}${ext} --syntax scss --config .stylelintrc ${changeFiles.css}`);
|
|
|
}
|
|
|
|
|
|
if (changeFiles.vue) {
|
|
|
changeFiles.vue = changeFiles.vue.replace(/\n/g, ' ');
|
|
|
lintResult.vueScript = shelljs.exec(`${lintPath.js}${ext} -c .eslintrc --cache --fix ${changeFiles.vue}`);
|
|
|
lintResult.vueStyle = shelljs.exec(`${lintPath.css}${ext} --syntax scss --extract --config .stylelintrc ${changeFiles.vue}`); // eslint-disable-line
|
|
|
}
|
|
|
|
|
|
if (lintResult.js.code || lintResult.css.code) {
|
|
|
process.exit(lintResult.js.code || lintResult.css.code); // eslint-disable-line
|
|
|
const errorCode = lintResult.js.code || lintResult.css.code || lintResult.vueScript.code || lintResult.vueStyle.code;
|
|
|
|
|
|
if (errorCode) {
|
|
|
process.exit(errorCode); // eslint-disable-line
|
|
|
} |
...
|
...
|
|