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

package.json中NPM pre钩子无法运行问题求助

排查pretest:e2e钩子未执行的可能原因
  • 钩子命名匹配问题
    确保pretest:e2e与主命令test:e2e的命名完全一致,注意大小写敏感。检查package.json中主命令的拼写,避免出现空格、大小写错误等细节问题。

  • Yarn版本的钩子逻辑差异
    不同Yarn版本(Yarn 1 vs Yarn 2+)的钩子执行逻辑存在区别:

    • 先执行yarn --version确认版本
    • 若为Yarn 2+,需在.yarnrc.yml中设置nodeLinker: node-modules,确保开启传统钩子支持,同时检查是否有禁用钩子的配置。
  • 命令触发方式错误
    必须通过yarn test:e2e启动测试,直接运行jest命令不会触发pre钩子。只有调用package.json中定义的脚本时,对应的pre钩子才会自动执行。

  • 钩子命令静默失败
    可能钩子命令执行出错但无输出,导致看起来未执行。修改pretest:e2e命令添加日志,验证钩子是否实际运行:

    "pretest:e2e": "echo '启动pretest:e2e钩子' && yarn db:test:restart && echo 'pretest钩子执行完成'"
    

    运行yarn test:e2e查看日志,判断钩子是未执行还是中间命令失败。

  • 环境权限或变量问题

    • 检查当前用户是否有足够权限运行nerdctl命令,macOS下需确保Docker相关权限配置正常
    • 验证执行yarn test:e2e时的环境变量,是否与单独运行db:test:restart时一致,避免环境差异导致命令失败。
  • NPM与Yarn混用冲突
    环境中同时存在NPM和Yarn,若之前用NPM安装过依赖,可能导致环境冲突。统一使用Yarn执行所有命令,或清理依赖后重新安装:

    rm -rf node_modules yarn.lock package-lock.json
    yarn install
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 14:55:19