From c1f7a402859c5c761690a4262c798d8e69c19924 Mon Sep 17 00:00:00 2001 From: oceanlvr <657531018@qq.com> Date: Sun, 6 Mar 2022 18:47:31 +0800 Subject: [PATCH] feat(git-hooks): add nano-stage & git hooks --- .simple-git-hooks.cjs | 4 ++++ nano-staged.mjs | 7 +++++++ package-lock.json | 42 ++++++++++++++++++++++++++++++++++++++++++ package.json | 6 +++++- 4 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 .simple-git-hooks.cjs create mode 100644 nano-staged.mjs diff --git a/.simple-git-hooks.cjs b/.simple-git-hooks.cjs new file mode 100644 index 0000000..eec1ca3 --- /dev/null +++ b/.simple-git-hooks.cjs @@ -0,0 +1,4 @@ +module.exports = { + // "pre-commit": "npx nano-staged", + "pre-commit": "", +}; \ No newline at end of file diff --git a/nano-staged.mjs b/nano-staged.mjs new file mode 100644 index 0000000..374b0c8 --- /dev/null +++ b/nano-staged.mjs @@ -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', +} diff --git a/package-lock.json b/package-lock.json index ec35955..88f38c2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -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", diff --git a/package.json b/package.json index 8702ee1..d943359 100644 --- a/package.json +++ b/package.json @@ -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",