feat(git-hooks): add nano-stage & git hooks

This commit is contained in:
oceanlvr 2022-03-06 18:47:31 +08:00
parent 9da0a2e13a
commit c1f7a40285
4 changed files with 58 additions and 1 deletions

4
.simple-git-hooks.cjs Normal file
View File

@ -0,0 +1,4 @@
module.exports = {
// "pre-commit": "npx nano-staged",
"pre-commit": "",
};

7
nano-staged.mjs Normal file
View File

@ -0,0 +1,7 @@
export default {
// eslint
'*.{js,ts,tsx,vue}': 'eslint --cache --fix',
// typecheck
'packages/renderer/**/{*.ts,*.tsx,*.vue,tsconfig.json}': ({ filenames }) =>
'npm run typecheck',
}

42
package-lock.json generated
View File

@ -13,6 +13,8 @@
"@vitejs/plugin-vue": "^2.1.0",
"electron": "16.0.8",
"electron-builder": "^22.14.5",
"nano-staged": "^0.6.0",
"simple-git-hooks": "^2.7.0",
"typescript": "^4.5.5",
"vite": "^2.7.13",
"vite-plugin-resolve": "^1.6.1",
@ -4595,6 +4597,21 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
"node_modules/nano-staged": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/nano-staged/-/nano-staged-0.6.0.tgz",
"integrity": "sha512-TqbdujUpBMwaBu582a5/BHlxTrs3Mu1DMk8KF2q38M0CTGiY34WRpwaQXTy5jRc5BXGjBCy4XByS69TSaS8WPw==",
"dev": true,
"dependencies": {
"picocolors": "^1.0.0"
},
"bin": {
"nano-staged": "lib/bin.js"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
}
},
"node_modules/nanoid": {
"version": "3.1.30",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz",
@ -5515,6 +5532,16 @@
"integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==",
"dev": true
},
"node_modules/simple-git-hooks": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/simple-git-hooks/-/simple-git-hooks-2.7.0.tgz",
"integrity": "sha512-nQe6ASMO9zn5/htIrU37xEIHGr9E6wikXelLbOeTcfsX2O++DHaVug7RSQoq+kO7DvZTH37WA5gW49hN9HTDmQ==",
"dev": true,
"hasInstallScript": true,
"bin": {
"simple-git-hooks": "cli.js"
}
},
"node_modules/slash": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
@ -9974,6 +10001,15 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
"nano-staged": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/nano-staged/-/nano-staged-0.6.0.tgz",
"integrity": "sha512-TqbdujUpBMwaBu582a5/BHlxTrs3Mu1DMk8KF2q38M0CTGiY34WRpwaQXTy5jRc5BXGjBCy4XByS69TSaS8WPw==",
"dev": true,
"requires": {
"picocolors": "^1.0.0"
}
},
"nanoid": {
"version": "3.1.30",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz",
@ -10704,6 +10740,12 @@
"integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==",
"dev": true
},
"simple-git-hooks": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/simple-git-hooks/-/simple-git-hooks-2.7.0.tgz",
"integrity": "sha512-nQe6ASMO9zn5/htIrU37xEIHGr9E6wikXelLbOeTcfsX2O++DHaVug7RSQoq+kO7DvZTH37WA5gW49hN9HTDmQ==",
"dev": true
},
"slash": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",

View File

@ -6,7 +6,9 @@
"license": "MIT",
"scripts": {
"dev": "node scripts/watch.mjs",
"prebuild": "vue-tsc --project packages/renderer/tsconfig.json --noEmit && node scripts/build.mjs",
"typecheck": "vue-tsc --project packages/renderer/tsconfig.json --noEmit",
"prebuild": "npm run typecheck && node scripts/build.mjs",
"init": "git config core.hooksPath .git/hooks/ && rm -rf .git/hooks && npx simple-git-hooks",
"build": "electron-builder",
"debug": "npm run prebuild && vite ./packages/renderer",
"test:e2e": "npx playwright test",
@ -20,6 +22,8 @@
"@vitejs/plugin-vue": "^2.1.0",
"electron": "16.0.8",
"electron-builder": "^22.14.5",
"nano-staged": "^0.6.0",
"simple-git-hooks": "^2.7.0",
"typescript": "^4.5.5",
"vite": "^2.7.13",
"vite-plugin-resolve": "^1.6.1",