diff --git a/.husky/commit-msg b/.husky/commit-msg deleted file mode 100755 index 270ebb8c1..000000000 --- a/.husky/commit-msg +++ /dev/null @@ -1,6 +0,0 @@ -echo Start running commit-msg hook... - -# Check whether the git commit information is standardized -pnpm exec commitlint --edit "$1" - -echo Run commit-msg hook done. diff --git a/.husky/post-merge b/.husky/post-merge deleted file mode 100644 index 83fa775d5..000000000 --- a/.husky/post-merge +++ /dev/null @@ -1,3 +0,0 @@ -# 每次 git pull 之后, 安装依赖 - -pnpm install diff --git a/.husky/pre-commit b/.husky/pre-commit deleted file mode 100755 index 5dccee288..000000000 --- a/.husky/pre-commit +++ /dev/null @@ -1,7 +0,0 @@ -# update `.vscode/vben-admin.code-workspace` file -pnpm vsh code-workspace --auto-commit - -# Format and submit code according to lintstagedrc.js configuration -pnpm exec lint-staged - -echo Run pre-commit hook done. diff --git a/.lintstagedrc.mjs b/.lintstagedrc.mjs deleted file mode 100644 index 2a5a5a1ae..000000000 --- a/.lintstagedrc.mjs +++ /dev/null @@ -1,20 +0,0 @@ -export default { - '*.md': ['prettier --cache --ignore-unknown --write'], - '*.vue': [ - 'prettier --write', - 'eslint --cache --fix', - 'stylelint --fix --allow-empty-input', - ], - '*.{js,jsx,ts,tsx}': [ - 'prettier --cache --ignore-unknown --write', - 'eslint --cache --fix', - ], - '*.{scss,less,styl,html,vue,css}': [ - 'prettier --cache --ignore-unknown --write', - 'stylelint --fix --allow-empty-input', - ], - 'package.json': ['prettier --cache --write'], - '{!(package)*.json,*.code-snippets,.!(browserslist)*rc}': [ - 'prettier --cache --write --parser json', - ], -}; diff --git a/.npmrc b/.npmrc index f4a1ad483..21147aff2 100644 --- a/.npmrc +++ b/.npmrc @@ -1,5 +1,5 @@ registry = "https://registry.npmmirror.com" -public-hoist-pattern[]=husky +public-hoist-pattern[]=lefthook public-hoist-pattern[]=eslint public-hoist-pattern[]=prettier public-hoist-pattern[]=prettier-plugin-tailwindcss diff --git a/.vscode/settings.json b/.vscode/settings.json index c8baaeb68..f38c42781 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -219,7 +219,7 @@ "*.env": "$(capture).env.*", "README.md": "README*,CHANGELOG*,LICENSE,CNAME", "package.json": "pnpm-lock.yaml,pnpm-workspace.yaml,.gitattributes,.gitignore,.gitpod.yml,.npmrc,.browserslistrc,.node-version,.git*,.tazerc.json", - "eslint.config.mjs": ".eslintignore,.prettierignore,.stylelintignore,.commitlintrc.*,.prettierrc.*,stylelint.config.*,.lintstagedrc.mjs,cspell.json", + "eslint.config.mjs": ".eslintignore,.prettierignore,.stylelintignore,.commitlintrc.*,.prettierrc.*,stylelint.config.*,.lintstagedrc.mjs,cspell.json,lefthook.yml", "tailwind.config.mjs": "postcss.*" }, "commentTranslate.hover.enabled": false, diff --git a/docs/src/en/guide/essentials/development.md b/docs/src/en/guide/essentials/development.md index 83f8647fe..9ff832b7b 100644 --- a/docs/src/en/guide/essentials/development.md +++ b/docs/src/en/guide/essentials/development.md @@ -98,8 +98,8 @@ The execution command is: `pnpm run [script]` or `npm run [script]`. "postinstall": "pnpm -r run stub --if-present", // Only allow using pnpm "preinstall": "npx only-allow pnpm", - // Install husky - "prepare": "is-ci || husky", + // Install lefthook + "prepare": "is-ci || lefthook install", // Preview the application "preview": "turbo-run preview", // Package specification check diff --git a/docs/src/en/guide/other/faq.md b/docs/src/en/guide/other/faq.md index da908f893..50cc13359 100644 --- a/docs/src/en/guide/other/faq.md +++ b/docs/src/en/guide/other/faq.md @@ -18,7 +18,7 @@ If you encounter a problem, you can start looking from the following aspects: ## Dependency Issues -In a `Monorepo` project, it is necessary to develop the habit of executing `pnpm install` every time you `git pull` the code, as new dependency packages are often added. The project has already configured automatic execution of `pnpm install` in `.husky/git-merge`, but sometimes there might be issues. If it does not execute automatically, it is recommended to execute it manually once. +In a `Monorepo` project, it's important to get into the habit of running `pnpm install` after every `git pull` because new dependencies are often added. The project has configured automatic execution of `pnpm install` in `lefthook.yml`, but sometimes there might be issues. If it does not execute automatically, it is recommended to execute it manually once. ## About Cache Update Issues diff --git a/docs/src/en/guide/project/standard.md b/docs/src/en/guide/project/standard.md index 23770c548..e5417ce7c 100644 --- a/docs/src/en/guide/project/standard.md +++ b/docs/src/en/guide/project/standard.md @@ -33,8 +33,8 @@ The project integrates the following code verification tools: - [Prettier](https://prettier.io/) for code formatting - [Commitlint](https://commitlint.js.org/) for checking the standard of git commit messages - [Publint](https://publint.dev/) for checking the standard of npm packages -- [Lint Staged](https://github.com/lint-staged/lint-staged) for running code verification before git commits - [Cspell](https://cspell.org/) for checking spelling errors +- [lefthook](https://github.com/evilmartians/lefthook) for managing Git hooks, automatically running code checks and formatting before commits ## ESLint @@ -148,18 +148,66 @@ The cspell configuration file is `cspell.json`, which can be modified according Git hooks are generally combined with various lints to check code style during git commits. If the check fails, the commit will not proceed. Developers need to modify and resubmit. -### husky +### lefthook -One issue is that the check will verify all code, but we only want to check the code we are committing. This is where husky comes in. +One issue is that the check will verify all code, but we only want to check the code we are committing. This is where lefthook comes in. -The most effective solution is to perform Lint checks locally before committing. A common practice is to use husky or pre-commit to perform a Lint check before local submission. +The most effective solution is to perform Lint checks locally before committing. A common practice is to use lefthook to perform a Lint check before local submission. -The project defines corresponding hooks inside `.husky`. +The project defines corresponding hooks inside `lefthook.yml`: -#### How to Disable Husky +- `pre-commit`: Runs before commit, used for code formatting and checking -If you want to disable Husky, simply delete the .husky directory. + - `code-workspace`: Updates VSCode workspace configuration + - `lint-md`: Formats Markdown files + - `lint-vue`: Formats and checks Vue files + - `lint-js`: Formats and checks JavaScript/TypeScript files + - `lint-style`: Formats and checks style files + - `lint-package`: Formats package.json + - `lint-json`: Formats other JSON files -### lint-staged +- `post-merge`: Runs after merge, used for automatic dependency installation -Used for automatically fixing style issues of committed files. Its configuration file is `.lintstagedrc.mjs`, which can be modified according to project needs. + - `install`: Runs `pnpm install` to install new dependencies + +- `commit-msg`: Runs during commit, used for checking commit message format + - `commitlint`: Uses commitlint to check commit messages + +#### How to Disable lefthook + +If you want to disable lefthook, there are two ways: + +::: code-group + +```bash [Temporary disable] +git commit -m 'feat: add home page' --no-verify +``` + +```bash [Permanent disable] +# Simply delete the lefthook.yml file +rm lefthook.yml +``` + +::: + +#### How to Modify lefthook Configuration + +If you want to modify lefthook's configuration, you can edit the `lefthook.yml` file. For example: + +```yaml +pre-commit: + parallel: true # Execute tasks in parallel + jobs: + - name: lint-js + run: pnpm prettier --cache --ignore-unknown --write {staged_files} + glob: '*.{js,jsx,ts,tsx}' +``` + +Where: + +- `parallel`: Whether to execute tasks in parallel +- `jobs`: Defines the list of tasks to execute +- `name`: Task name +- `run`: Command to execute +- `glob`: File pattern to match +- `{staged_files}`: Represents the list of staged files diff --git a/docs/src/guide/essentials/development.md b/docs/src/guide/essentials/development.md index 81cdc5901..cb55b6b5c 100644 --- a/docs/src/guide/essentials/development.md +++ b/docs/src/guide/essentials/development.md @@ -98,8 +98,8 @@ npm 脚本是项目常见的配置,用于执行一些常见的任务,比如 "postinstall": "pnpm -r run stub --if-present", // 只允许使用pnpm "preinstall": "npx only-allow pnpm", - // husky的安装 - "prepare": "is-ci || husky", + // lefthook的安装 + "prepare": "is-ci || lefthook install", // 预览应用 "preview": "turbo-run preview", // 包规范检查 diff --git a/docs/src/guide/other/faq.md b/docs/src/guide/other/faq.md index 02bbe8b06..33139c4df 100644 --- a/docs/src/guide/other/faq.md +++ b/docs/src/guide/other/faq.md @@ -18,7 +18,7 @@ ## 依赖问题 -在 `Monorepo` 项目下,需要养成每次 `git pull`代码都要执行`pnpm install`的习惯,因为经常会有新的依赖包加入,项目在`.husky/git-merge`已经配置了自动执行`pnpm install`,但是有时候会出现问题,如果没有自动执行,建议手动执行一次。 +在 `Monorepo` 项目下,需要养成每次 `git pull`代码都要执行`pnpm install`的习惯,因为经常会有新的依赖包加入,项目在`lefthook.yml`已经配置了自动执行`pnpm install`,但是有时候会出现问题,如果没有自动执行,建议手动执行一次。 ## 关于缓存更新问题 diff --git a/docs/src/guide/project/standard.md b/docs/src/guide/project/standard.md index 3effad2ff..12a13da3b 100644 --- a/docs/src/guide/project/standard.md +++ b/docs/src/guide/project/standard.md @@ -33,8 +33,8 @@ - [Prettier](https://prettier.io/) 用于代码格式化 - [Commitlint](https://commitlint.js.org/) 用于检查 git 提交信息的规范 - [Publint](https://publint.dev/) 用于检查 npm 包的规范 -- [Lint Staged](https://github.com/lint-staged/lint-staged) 用于在 git 提交前运行代码校验 - [Cspell](https://cspell.org/) 用于检查拼写错误 +- [lefthook](https://github.com/evilmartians/lefthook) 用于管理 Git hooks,在提交前自动运行代码校验和格式化 ## ESLint @@ -148,18 +148,66 @@ cspell 配置文件为 `cspell.json`,可以根据项目需求进行修改。 git hook 一般结合各种 lint,在 git 提交代码的时候进行代码风格校验,如果校验没通过,则不会进行提交。需要开发者自行修改后再次进行提交 -### husky +### lefthook -有一个问题就是校验会校验全部代码,但是我们只想校验我们自己提交的代码,这个时候就可以使用 husky。 +有一个问题就是校验会校验全部代码,但是我们只想校验我们自己提交的代码,这个时候就可以使用 lefthook。 -最有效的解决方案就是将 Lint 校验放到本地,常见做法是使用 husky 或者 pre-commit 在本地提交之前先做一次 Lint 校验。 +最有效的解决方案就是将 Lint 校验放到本地,常见做法是使用 lefthook 在本地提交之前先做一次 Lint 校验。 -项目在 `.husky` 内部定义了相应的 hooks +项目在 `lefthook.yml` 内部定义了相应的 hooks: -#### 如何关闭 Husky +- `pre-commit`: 在提交前运行,用于代码格式化和检查 -如果你想关闭 Husky,直接删除 `.husky` 目录即可。 + - `code-workspace`: 更新 VSCode 工作区配置 + - `lint-md`: 格式化 Markdown 文件 + - `lint-vue`: 格式化并检查 Vue 文件 + - `lint-js`: 格式化并检查 JavaScript/TypeScript 文件 + - `lint-style`: 格式化并检查样式文件 + - `lint-package`: 格式化 package.json + - `lint-json`: 格式化其他 JSON 文件 -### lint-staged +- `post-merge`: 在合并后运行,用于自动安装依赖 -用于自动修复提交文件风格问题,其配置文件为 `.lintstagedrc.mjs`,可以根据项目需求进行修改。 + - `install`: 运行 `pnpm install` 安装新依赖 + +- `commit-msg`: 在提交时运行,用于检查提交信息格式 + - `commitlint`: 使用 commitlint 检查提交信息 + +#### 如何关闭 lefthook + +如果你想关闭 lefthook,有两种方式: + +::: code-group + +```bash [临时关闭] +git commit -m 'feat: add home page' --no-verify +``` + +```bash [永久关闭] +# 删除 lefthook.yml 文件即可 +rm lefthook.yml +``` + +::: + +#### 如何修改 lefthook 配置 + +如果你想修改 lefthook 的配置,可以编辑 `lefthook.yml` 文件。例如: + +```yaml +pre-commit: + parallel: true # 并行执行任务 + jobs: + - name: lint-js + run: pnpm prettier --cache --ignore-unknown --write {staged_files} + glob: '*.{js,jsx,ts,tsx}' +``` + +其中: + +- `parallel`: 是否并行执行任务 +- `jobs`: 定义要执行的任务列表 +- `name`: 任务名称 +- `run`: 要执行的命令 +- `glob`: 匹配的文件模式 +- `{staged_files}`: 表示暂存的文件列表 diff --git a/lefthook.yml b/lefthook.yml new file mode 100644 index 000000000..728017416 --- /dev/null +++ b/lefthook.yml @@ -0,0 +1,76 @@ +# EXAMPLE USAGE: +# +# Refer for explanation to following link: +# https://lefthook.dev/configuration/ +# +# pre-push: +# jobs: +# - name: packages audit +# tags: +# - frontend +# - security +# run: yarn audit +# +# - name: gems audit +# tags: +# - backend +# - security +# run: bundle audit +# +# pre-commit: +# parallel: true +# jobs: +# - run: yarn eslint {staged_files} +# glob: "*.{js,ts,jsx,tsx}" +# +# - name: rubocop +# glob: "*.rb" +# exclude: +# - config/application.rb +# - config/routes.rb +# run: bundle exec rubocop --force-exclusion {all_files} +# +# - name: govet +# files: git ls-files -m +# glob: "*.go" +# run: go vet {files} +# +# - script: "hello.js" +# runner: node +# +# - script: "hello.go" +# runner: go run + +pre-commit: + parallel: true + commands: + code-workspace: + run: pnpm vsh code-workspace --auto-commit + lint-md: + run: pnpm prettier --cache --ignore-unknown --write {staged_files} + glob: '*.md' + lint-vue: + run: pnpm prettier --write {staged_files} && pnpm eslint --cache --fix {staged_files} && pnpm stylelint --fix --allow-empty-input {staged_files} + glob: '*.vue' + lint-js: + run: pnpm prettier --cache --ignore-unknown --write {staged_files} && pnpm eslint --cache --fix {staged_files} + glob: '*.{js,jsx,ts,tsx}' + lint-style: + run: pnpm prettier --cache --ignore-unknown --write {staged_files} && pnpm stylelint --fix --allow-empty-input {staged_files} + glob: '*.{scss,less,styl,html,vue,css}' + lint-package: + run: pnpm prettier --cache --write {staged_files} + glob: 'package.json' + lint-json: + run: pnpm prettier --cache --write --parser json {staged_files} + glob: '{!(package)*.json,*.code-snippets,.!(browserslist)*rc}' + +post-merge: + commands: + install: + run: pnpm install + +commit-msg: + commands: + commitlint: + run: pnpm exec commitlint --edit $1 diff --git a/package.json b/package.json index d6d46cbd4..f3c87fef8 100644 --- a/package.json +++ b/package.json @@ -51,14 +51,15 @@ "lint": "vsh lint", "postinstall": "pnpm -r run stub --if-present", "preinstall": "npx only-allow pnpm", - "prepare": "is-ci || husky", + "prepare": "is-ci || lefthook install", "preview": "turbo-run preview", "publint": "vsh publint", "reinstall": "pnpm clean --del-lock && pnpm install", "test:unit": "vitest run --dom", "test:e2e": "turbo run test:e2e", "update:deps": "npx taze -r -w", - "version": "pnpm exec changeset version && pnpm install --no-frozen-lockfile" + "version": "pnpm exec changeset version && pnpm install --no-frozen-lockfile", + "catalog": "pnpx codemod pnpm/catalog" }, "devDependencies": { "@changesets/changelog-github": "catalog:", @@ -81,9 +82,8 @@ "cross-env": "catalog:", "cspell": "catalog:", "happy-dom": "catalog:", - "husky": "catalog:", "is-ci": "catalog:", - "lint-staged": "catalog:", + "lefthook": "catalog:", "playwright": "catalog:", "rimraf": "catalog:", "tailwindcss": "catalog:", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6001acaab..fa50ca938 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -288,9 +288,6 @@ catalogs: html-minifier-terser: specifier: ^7.2.0 version: 7.2.0 - husky: - specifier: ^9.1.7 - version: 9.1.7 is-ci: specifier: ^4.1.0 version: 4.1.0 @@ -300,9 +297,9 @@ catalogs: jsonwebtoken: specifier: ^9.0.2 version: 9.0.2 - lint-staged: - specifier: ^15.5.1 - version: 15.5.1 + lefthook: + specifier: ^1.11.12 + version: 1.11.12 lodash.clonedeep: specifier: ^4.5.0 version: 4.5.0 @@ -592,15 +589,12 @@ importers: happy-dom: specifier: 'catalog:' version: 17.4.6 - husky: - specifier: 'catalog:' - version: 9.1.7 is-ci: specifier: 'catalog:' version: 4.1.0 - lint-staged: + lefthook: specifier: 'catalog:' - version: 15.5.1 + version: 1.11.12 playwright: specifier: 'catalog:' version: 1.52.0 @@ -7212,11 +7206,6 @@ packages: humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - husky@9.1.7: - resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} - engines: {node: '>=18'} - hasBin: true - iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -7763,6 +7752,60 @@ packages: resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} engines: {node: '>= 0.6.3'} + lefthook-darwin-arm64@1.11.12: + resolution: {integrity: sha512-nB3rZVGoign6lhlbdfT1/knk4fV4Kx7kgbho8oSFcpw/o2qRQpLqmclCWUTtf+Pyj4vCzE7hiee/m+uQtvu19w==} + cpu: [arm64] + os: [darwin] + + lefthook-darwin-x64@1.11.12: + resolution: {integrity: sha512-ExNz8ctFRRaVz2wpvjmOtV4GeZcRdsAZwnZbmvlu1fMcJ6WtjAuR6fB0ybtcsc03/zBNrfShiq+VtZLkGv8Oeg==} + cpu: [x64] + os: [darwin] + + lefthook-freebsd-arm64@1.11.12: + resolution: {integrity: sha512-3Si6YJ8YLEMJ6TGsaBI2ni64XSrJX69N4gX7OKQp85IXeizPUEy7oorYAJCUaw5nMffRbIkzxNTjaMkcn4iwag==} + cpu: [arm64] + os: [freebsd] + + lefthook-freebsd-x64@1.11.12: + resolution: {integrity: sha512-J18MNYZKkVdHJ5K54MT8kxJ/W4TBUxD8aCi4e+Oliw8UXAiwaJSTGPkdY5P8aUlVYDknN2w+6I99Dxre6CJRFw==} + cpu: [x64] + os: [freebsd] + + lefthook-linux-arm64@1.11.12: + resolution: {integrity: sha512-oIWcj7mcHnFB4tcfz4dsZTnDTXIyF7cjCEqhDQTvqJQLbE1XRfjU0RzQdgSKrzdmXIcUFB+lmcgeRwJnKBEJ8Q==} + cpu: [arm64] + os: [linux] + + lefthook-linux-x64@1.11.12: + resolution: {integrity: sha512-sr9X5dW5dl9Fa3Kdk3x66DPGgCz/rykm+JHIyQGfnuvZnaeqkEaXgNubBaVGBbOimagXgtA5DwXc6D6fzUYALA==} + cpu: [x64] + os: [linux] + + lefthook-openbsd-arm64@1.11.12: + resolution: {integrity: sha512-4TuX8c/lwky1DSNIY6knIFlMIHQZrVBxh6O5vSTjOAjKv5YmIkNgeUlwcBD+SMru9tQBj7MvOpJSkVkaLK5hhQ==} + cpu: [arm64] + os: [openbsd] + + lefthook-openbsd-x64@1.11.12: + resolution: {integrity: sha512-Y/rPvyXtsIH+pxACfLHwxqc2Ahk+aExj8Izce3zXp75Wki5DH+6TXm5tWj5CgIuefL7CMqNFsOZCjEe1+SyM+w==} + cpu: [x64] + os: [openbsd] + + lefthook-windows-arm64@1.11.12: + resolution: {integrity: sha512-OJaElGktzsMrkmIpXBqwlc+eZx5kwxx+tJFByTXiW/rb8ttBwj0ueVyfo3lw/PqqlbMy73qc9Uj3CHYkaKsDKw==} + cpu: [arm64] + os: [win32] + + lefthook-windows-x64@1.11.12: + resolution: {integrity: sha512-ZhKsisibIcaG+rv9i7UJUgnuejI6mfaS5T3FreqsWt5vAsEIvLLNmZUA15MHPr99n+L4La1YQ2jTqie1kH57dA==} + cpu: [x64] + os: [win32] + + lefthook@1.11.12: + resolution: {integrity: sha512-refh8mlcNtwJfmHDH+2mN1KTIVjp1EHlrjzOjfH/hJ4vFQByH2+1KfFDlJLX9V16VESwUNyOGkEZ9cJEF6zNgg==} + hasBin: true + less@4.3.0: resolution: {integrity: sha512-X9RyH9fvemArzfdP8Pi3irr7lor2Ok4rOttDXBhlwDg+wKQsXOXgHWduAJE1EsF7JJx0w0bcO6BC6tCKKYnXKA==} engines: {node: '>=14'} @@ -7783,11 +7826,6 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - lint-staged@15.5.1: - resolution: {integrity: sha512-6m7u8mue4Xn6wK6gZvSCQwBvMBR36xfY24nF5bMTf2MHDYG6S3yhJuOgdYVw99hsjyDt2d4z168b3naI8+NWtQ==} - engines: {node: '>=18.12.0'} - hasBin: true - listhen@1.9.0: resolution: {integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==} hasBin: true @@ -8673,11 +8711,6 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} - pidtree@0.6.0: - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} - engines: {node: '>=0.10'} - hasBin: true - pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -17380,8 +17413,6 @@ snapshots: dependencies: ms: 2.1.3 - husky@9.1.7: {} - iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 @@ -17847,6 +17878,49 @@ snapshots: dependencies: readable-stream: 2.3.8 + lefthook-darwin-arm64@1.11.12: + optional: true + + lefthook-darwin-x64@1.11.12: + optional: true + + lefthook-freebsd-arm64@1.11.12: + optional: true + + lefthook-freebsd-x64@1.11.12: + optional: true + + lefthook-linux-arm64@1.11.12: + optional: true + + lefthook-linux-x64@1.11.12: + optional: true + + lefthook-openbsd-arm64@1.11.12: + optional: true + + lefthook-openbsd-x64@1.11.12: + optional: true + + lefthook-windows-arm64@1.11.12: + optional: true + + lefthook-windows-x64@1.11.12: + optional: true + + lefthook@1.11.12: + optionalDependencies: + lefthook-darwin-arm64: 1.11.12 + lefthook-darwin-x64: 1.11.12 + lefthook-freebsd-arm64: 1.11.12 + lefthook-freebsd-x64: 1.11.12 + lefthook-linux-arm64: 1.11.12 + lefthook-linux-x64: 1.11.12 + lefthook-openbsd-arm64: 1.11.12 + lefthook-openbsd-x64: 1.11.12 + lefthook-windows-arm64: 1.11.12 + lefthook-windows-x64: 1.11.12 + less@4.3.0: dependencies: copy-anything: 2.0.6 @@ -17872,21 +17946,6 @@ snapshots: lines-and-columns@1.2.4: {} - lint-staged@15.5.1: - dependencies: - chalk: 5.4.1 - commander: 13.1.0 - debug: 4.4.0 - execa: 8.0.1 - lilconfig: 3.1.3 - listr2: 8.3.2 - micromatch: 4.0.8 - pidtree: 0.6.0 - string-argv: 0.3.2 - yaml: 2.7.1 - transitivePeerDependencies: - - supports-color - listhen@1.9.0: dependencies: '@parcel/watcher': 2.5.1 @@ -18843,8 +18902,6 @@ snapshots: picomatch@4.0.2: {} - pidtree@0.6.0: {} - pify@2.3.0: {} pify@4.0.1: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 7c04b0556..00c384ef6 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -62,8 +62,8 @@ catalog: '@vue/shared': ^3.5.13 '@vue/test-utils': ^2.4.6 '@vueuse/core': ^13.1.0 - '@vueuse/motion': ^3.0.3 '@vueuse/integrations': ^13.1.0 + '@vueuse/motion': ^3.0.3 ant-design-vue: ^4.2.6 archiver: ^7.0.1 autoprefixer: ^10.4.21 @@ -111,15 +111,14 @@ catalog: h3: ^1.15.3 happy-dom: ^17.4.6 html-minifier-terser: ^7.2.0 - husky: ^9.1.7 is-ci: ^4.1.0 jsonc-eslint-parser: ^2.4.0 jsonwebtoken: ^9.0.2 - lint-staged: ^15.5.1 + lefthook: ^1.11.12 lodash.clonedeep: ^4.5.0 lodash.get: ^4.4.2 - lodash.set: ^4.3.2 lodash.isequal: ^4.5.0 + lodash.set: ^4.3.2 lucide-vue-next: ^0.507.0 medium-zoom: ^1.1.0 naive-ui: ^2.41.0 diff --git a/scripts/vsh/src/check-dep/index.ts b/scripts/vsh/src/check-dep/index.ts index 88d623fd2..e600e1bbd 100644 --- a/scripts/vsh/src/check-dep/index.ts +++ b/scripts/vsh/src/check-dep/index.ts @@ -22,7 +22,6 @@ const DEFAULT_CONFIG = { '@vben/backend-mock', '@vben/commitlint-config', '@vben/eslint-config', - '@vben/lint-staged-config', '@vben/node-utils', '@vben/prettier-config', '@vben/stylelint-config',