You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让pre-commit使用pnpm安装stylelint自定义钩子依赖?

解决pre-commit使用pnpm替代npm管理Node依赖的问题

一、全局配置pre-commit默认使用pnpm

你可以通过两种方式让pre-commit全局使用pnpm作为Node包管理器:

方式1:设置环境变量(永久生效)

在你的shell配置文件(如~/.bashrc、~/.zshrc或~/.fish/config.fish)中添加以下内容,重启终端或执行source ~/.bashrc(对应你的shell类型)生效:

export PRE_COMMIT_NODE_PACKAGE_MANAGER=pnpm

方式2:在项目pre-commit配置中指定

在项目根目录的.pre-commit-config.yaml顶部添加全局默认钩子环境配置:

default_install_hook_env:
  PRE_COMMIT_NODE_PACKAGE_MANAGER: pnpm

二、修改stylelint自定义钩子配置

调整你的stylelint钩子,适配pnpm并确保依赖用pnpm add -D安装:

- id: stylelint
  name: stylelint
  # 若web目录已经执行过`pnpm add -D stylelint`,可直接移除以下additional_dependencies配置
  # 若需要钩子在隔离环境独立安装依赖,保留此配置,全局pnpm设置会自动用pnpm安装
  # additional_dependencies:
  #   - stylelint
  entry: pnpm --dir web lint:scss
  files: ^.*\.(css|scss|svelte)$
  language: node
  pass_filenames: false

补充说明:

  • 如果你的web目录已经通过pnpm add -D stylelint安装了依赖,且配置好了lint:scss脚本,移除additional_dependencies更符合项目包管理逻辑,钩子会直接调用本地已安装的stylelint。
  • 保留additional_dependencies时,pre-commit会在隔离的钩子环境中用pnpm安装指定依赖,适合需要独立运行环境的场景。

内容的提问来源于stack exchange,提问作者meAndrew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 14:57:08