From 2b9eb065552e4bae8ff14b00640d30e2d2257d78 Mon Sep 17 00:00:00 2001 From: Stephen Zhou Date: Wed, 1 Apr 2026 19:02:53 +0800 Subject: [PATCH] chore: move commit hook to root (#34404) --- .gitignore | 1 + {web/.husky => .vite-hooks}/pre-commit | 2 +- package.json | 12 +- pnpm-lock.yaml | 155 +------------------------ pnpm-workspace.yaml | 2 - vite.config.ts | 5 + web/Dockerfile | 2 +- web/Dockerfile.dockerignore | 1 - web/package.json | 6 - web/vite.config.ts | 3 + 10 files changed, 22 insertions(+), 167 deletions(-) rename {web/.husky => .vite-hooks}/pre-commit (99%) mode change 100644 => 100755 create mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore index d7698fe3fd9..f703fc02e9b 100644 --- a/.gitignore +++ b/.gitignore @@ -213,6 +213,7 @@ api/.vscode # pnpm /.pnpm-store /node_modules +.vite-hooks/_ # plugin migrate plugins.jsonl diff --git a/web/.husky/pre-commit b/.vite-hooks/pre-commit old mode 100644 new mode 100755 similarity index 99% rename from web/.husky/pre-commit rename to .vite-hooks/pre-commit index 3f25de256fb..54e09f80d6d --- a/web/.husky/pre-commit +++ b/.vite-hooks/pre-commit @@ -77,7 +77,7 @@ if $web_modified; then fi cd ./web || exit 1 - lint-staged + vp staged if $web_ts_modified; then echo "Running TypeScript type-check:tsgo" diff --git a/package.json b/package.json index 07f1e16153f..48c3acef021 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,15 @@ { "name": "dify", "private": true, + "scripts": { + "prepare": "vp config" + }, + "devDependencies": { + "taze": "catalog:", + "vite-plus": "catalog:" + }, "engines": { "node": "^22.22.1" }, - "packageManager": "pnpm@10.33.0", - "devDependencies": { - "taze": "catalog:" - } + "packageManager": "pnpm@10.33.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eb45ea0ef85..baa4ed6c34c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -345,9 +345,6 @@ catalogs: html-to-image: specifier: 1.11.13 version: 1.11.13 - husky: - specifier: 9.1.7 - version: 9.1.7 i18next: specifier: 25.10.10 version: 25.10.10 @@ -390,9 +387,6 @@ catalogs: lexical: specifier: 0.42.0 version: 0.42.0 - lint-staged: - specifier: 16.4.0 - version: 16.4.0 mermaid: specifier: 11.13.0 version: 11.13.0 @@ -624,6 +618,9 @@ importers: taze: specifier: 'catalog:' version: 19.10.0 + vite-plus: + specifier: 'catalog:' + version: 0.1.14(@types/node@25.5.0)(esbuild@0.27.2)(happy-dom@20.8.9)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.9.3)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(esbuild@0.27.2)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) e2e: devDependencies: @@ -1165,18 +1162,12 @@ importers: hono: specifier: 'catalog:' version: 4.12.9 - husky: - specifier: 'catalog:' - version: 9.1.7 iconify-import-svg: specifier: 'catalog:' version: 0.1.2 knip: specifier: 'catalog:' version: 6.1.0(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) - lint-staged: - specifier: 'catalog:' - version: 16.4.0 postcss: specifier: 'catalog:' version: 8.5.8 @@ -4751,10 +4742,6 @@ packages: ajv@8.18.0: resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} - ansi-escapes@7.3.0: - resolution: {integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==} - engines: {node: '>=18'} - ansi-regex@4.1.1: resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} engines: {node: '>=6'} @@ -4775,10 +4762,6 @@ packages: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} - ansi-styles@6.2.3: - resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} - engines: {node: '>=12'} - ansis@4.2.0: resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==} engines: {node: '>=14'} @@ -5066,18 +5049,10 @@ packages: resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} engines: {node: '>=4'} - cli-cursor@5.0.0: - resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} - engines: {node: '>=18'} - cli-table3@0.6.5: resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} engines: {node: 10.* || >= 12.*} - cli-truncate@5.2.0: - resolution: {integrity: sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw==} - engines: {node: '>=20'} - client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} @@ -5104,9 +5079,6 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - comma-separated-tokens@1.0.8: resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} @@ -5572,10 +5544,6 @@ packages: resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} engines: {node: '>=0.12'} - environment@1.1.0: - resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} - engines: {node: '>=18'} - error-stack-parser-es@1.0.5: resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} @@ -5965,9 +5933,6 @@ packages: event-target-bus@1.0.0: resolution: {integrity: sha512-uPcWKbj/BJU3Tbw9XqhHqET4/LBOhvv3/SJWr7NksxA6TC5YqBpaZgawE9R+WpYFCBFSAE4Vun+xQS6w4ABdlA==} - eventemitter3@5.0.4: - resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} - events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} @@ -6289,11 +6254,6 @@ packages: htmlparser2@10.1.0: resolution: {integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==} - husky@9.1.7: - resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} - engines: {node: '>=18'} - hasBin: true - i18next-resources-to-backend@1.2.1: resolution: {integrity: sha512-okHbVA+HZ7n1/76MsfhPqDou0fptl2dAlhRDu2ideXloRRduzHsqDOznJBef+R3DFZnbvWoBW+KxJ7fnFjd6Yw==} @@ -6419,10 +6379,6 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - is-fullwidth-code-point@5.1.0: - resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} - engines: {node: '>=18'} - is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -6730,15 +6686,6 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - lint-staged@16.4.0: - resolution: {integrity: sha512-lBWt8hujh/Cjysw5GYVmZpFHXDCgZzhrOm8vbcUdobADZNOK/bRshr2kM3DfgrrtR1DQhfupW9gnIXOfiFi+bw==} - engines: {node: '>=20.17'} - hasBin: true - - listr2@9.0.5: - resolution: {integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==} - engines: {node: '>=20.0.0'} - load-tsconfig@0.2.5: resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -6770,10 +6717,6 @@ packages: lodash@4.17.23: resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} - log-update@6.1.0: - resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} - engines: {node: '>=18'} - longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -7920,9 +7863,6 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rfdc@1.4.1: - resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - robust-predicates@3.0.3: resolution: {integrity: sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==} @@ -8043,14 +7983,6 @@ packages: size-sensor@1.0.3: resolution: {integrity: sha512-+k9mJ2/rQMiRmQUcjn+qznch260leIXY8r4FyYKKyRBO/s5UoeMAHGkCJyE1R/4wrIhTJONfyloY55SkE7ve3A==} - slice-ansi@7.1.2: - resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} - engines: {node: '>=18'} - - slice-ansi@8.0.0: - resolution: {integrity: sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==} - engines: {node: '>=20'} - smol-toml@1.6.1: resolution: {integrity: sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==} engines: {node: '>= 18'} @@ -8134,10 +8066,6 @@ packages: resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} engines: {node: '>=0.6.19'} - string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} - string-ts@2.3.1: resolution: {integrity: sha512-xSJq+BS52SaFFAVxuStmx6n5aYZU571uYUnUrPXkPFCfdHyZMMlbP2v2Wx5sNBnAVzq/2+0+mcBLBa3Xa5ubYw==} @@ -8874,10 +8802,6 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - wrap-ansi@9.0.2: - resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} - engines: {node: '>=18'} - wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -12658,10 +12582,6 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - ansi-escapes@7.3.0: - dependencies: - environment: 1.1.0 - ansi-regex@4.1.1: {} ansi-regex@5.0.1: {} @@ -12674,8 +12594,6 @@ snapshots: ansi-styles@5.2.0: {} - ansi-styles@6.2.3: {} - ansis@4.2.0: {} any-promise@1.3.0: {} @@ -12947,21 +12865,12 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 - cli-cursor@5.0.0: - dependencies: - restore-cursor: 5.1.0 - cli-table3@0.6.5: dependencies: string-width: 8.2.0 optionalDependencies: '@colors/colors': 1.5.0 - cli-truncate@5.2.0: - dependencies: - slice-ansi: 8.0.0 - string-width: 8.2.0 - client-only@0.0.1: {} clsx@2.1.1: {} @@ -12998,8 +12907,6 @@ snapshots: color-name@1.1.4: {} - colorette@2.0.20: {} - comma-separated-tokens@1.0.8: {} comma-separated-tokens@2.0.3: {} @@ -13443,8 +13350,6 @@ snapshots: entities@7.0.1: {} - environment@1.1.0: {} - error-stack-parser-es@1.0.5: {} error-stack-parser@2.1.4: @@ -14106,8 +14011,6 @@ snapshots: event-target-bus@1.0.0: {} - eventemitter3@5.0.4: {} - events@3.3.0: {} expand-template@2.0.3: @@ -14496,8 +14399,6 @@ snapshots: domutils: 3.2.2 entities: 7.0.1 - husky@9.1.7: {} - i18next-resources-to-backend@1.2.1: dependencies: '@babel/runtime': 7.29.2 @@ -14596,10 +14497,6 @@ snapshots: is-extglob@2.1.1: {} - is-fullwidth-code-point@5.1.0: - dependencies: - get-east-asian-width: 1.5.0 - is-glob@4.0.3: dependencies: is-extglob: 2.1.1 @@ -14853,24 +14750,6 @@ snapshots: lines-and-columns@1.2.4: {} - lint-staged@16.4.0: - dependencies: - commander: 14.0.3 - listr2: 9.0.5 - picomatch: 4.0.4 - string-argv: 0.3.2 - tinyexec: 1.0.4 - yaml: 2.8.3 - - listr2@9.0.5: - dependencies: - cli-truncate: 5.2.0 - colorette: 2.0.20 - eventemitter3: 5.0.4 - log-update: 6.1.0 - rfdc: 1.4.1 - wrap-ansi: 9.0.2 - load-tsconfig@0.2.5: {} loader-runner@4.3.1: {} @@ -14895,14 +14774,6 @@ snapshots: lodash@4.17.23: {} - log-update@6.1.0: - dependencies: - ansi-escapes: 7.3.0 - cli-cursor: 5.0.0 - slice-ansi: 7.1.2 - strip-ansi: 7.2.0 - wrap-ansi: 9.0.2 - longest-streak@3.1.0: {} loose-envify@1.4.0: @@ -16539,8 +16410,6 @@ snapshots: reusify@1.1.0: {} - rfdc@1.4.1: {} - robust-predicates@3.0.3: {} rolldown@1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1): @@ -16734,16 +16603,6 @@ snapshots: size-sensor@1.0.3: {} - slice-ansi@7.1.2: - dependencies: - ansi-styles: 6.2.3 - is-fullwidth-code-point: 5.1.0 - - slice-ansi@8.0.0: - dependencies: - ansi-styles: 6.2.3 - is-fullwidth-code-point: 5.1.0 - smol-toml@1.6.1: {} solid-js@1.9.11: @@ -16844,8 +16703,6 @@ snapshots: string-argv@0.3.1: {} - string-argv@0.3.2: {} - string-ts@2.3.1: {} string-width@8.2.0: @@ -17690,12 +17547,6 @@ snapshots: word-wrap@1.2.5: {} - wrap-ansi@9.0.2: - dependencies: - ansi-styles: 6.2.3 - string-width: 8.2.0 - strip-ansi: 7.2.0 - wrappy@1.0.2: {} ws@8.20.0: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index b11cca66421..77451f6dfc4 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -183,7 +183,6 @@ catalog: hono: 4.12.9 html-entities: 2.6.0 html-to-image: 1.11.13 - husky: 9.1.7 i18next: 25.10.10 i18next-resources-to-backend: 1.2.1 iconify-import-svg: 0.1.2 @@ -198,7 +197,6 @@ catalog: ky: 1.14.3 lamejs: 1.2.1 lexical: 0.42.0 - lint-staged: 16.4.0 mermaid: 11.13.0 mime: 4.1.0 mitt: 3.0.1 diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 00000000000..a34932a4ef1 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,5 @@ +import { defineConfig } from 'vite-plus' + +export default defineConfig({ + staged: {}, +}) diff --git a/web/Dockerfile b/web/Dockerfile index 75024db4f3c..dc234168423 100644 --- a/web/Dockerfile +++ b/web/Dockerfile @@ -31,7 +31,7 @@ RUN corepack install # Install only the web workspace to keep image builds from pulling in # unrelated workspace dependencies such as e2e tooling. -RUN pnpm install --filter ./web... --frozen-lockfile +RUN VITE_GIT_HOOKS=0 pnpm install --filter ./web... --frozen-lockfile # build resources FROM base AS builder diff --git a/web/Dockerfile.dockerignore b/web/Dockerfile.dockerignore index 9801003d892..b572bd863e6 100644 --- a/web/Dockerfile.dockerignore +++ b/web/Dockerfile.dockerignore @@ -22,7 +22,6 @@ web/node_modules web/dist web/build web/coverage -web/.husky web/.next web/.pnpm-store web/.vscode diff --git a/web/package.json b/web/package.json index 9ed21fdb22b..08c10b12adc 100644 --- a/web/package.json +++ b/web/package.json @@ -40,7 +40,6 @@ "lint:quiet": "vp run lint --quiet", "lint:tss": "tsslint --project tsconfig.json", "preinstall": "npx only-allow pnpm", - "prepare": "cd ../ && node -e \"if (process.env.NODE_ENV !== 'production'){process.exit(1)} \" || husky ./web/.husky", "refactor-component": "node ./scripts/refactor-component.js", "start": "node ./scripts/copy-and-start.mjs", "start:vinext": "vinext start", @@ -218,10 +217,8 @@ "eslint-plugin-storybook": "catalog:", "happy-dom": "catalog:", "hono": "catalog:", - "husky": "catalog:", "iconify-import-svg": "catalog:", "knip": "catalog:", - "lint-staged": "catalog:", "postcss": "catalog:", "postcss-js": "catalog:", "react-server-dom-webpack": "catalog:", @@ -237,8 +234,5 @@ "vite-plus": "catalog:", "vitest": "catalog:", "vitest-canvas-mock": "catalog:" - }, - "lint-staged": { - "*": "eslint --fix --pass-on-unpruned-suppressions" } } diff --git a/web/vite.config.ts b/web/vite.config.ts index 28746f81ca3..92762676d18 100644 --- a/web/vite.config.ts +++ b/web/vite.config.ts @@ -18,6 +18,9 @@ export default defineConfig(({ mode }) => { || process.argv.some(arg => arg.toLowerCase().includes('storybook')) return { + staged: { + '*': 'eslint --fix --pass-on-unpruned-suppressions', + }, plugins: isTest ? [ nextStaticImageTestPlugin({ projectRoot }),