NPM 7 workspace模式安装依赖执行找不到sentry-cli

在使用npm 7 workspace模式时遇到sentry-cli ENOENT错误,@sentry/cli未正确安装sentry-cli。尝试了配置.npmrc源、在主项目强装和安装最新包等方法无效。最后通过运行@sentry/cli内部的安装脚本,并利用npm的prepare钩子自动执行,实现了问题的解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

搜遍了谷歌还有相关Github Repo Issues都没有,
npm workspace的资料都不多,
有个别都是yarn workspace说什么安装依赖异常,
换成国内的淘宝源啊,来来去去都说什么源找不到,


一顿操作猛如虎,问题还是没有解决。
只能自己摸索了,我的解决姿势感觉应该是全网第一例!

系统环境

  • Mac OS
  • Node 14.16.1
  • NPM 7.12.1
    • @sentry/cli 1.64.2

问题列表

sentry-cli ENOENT

ERROR in Sentry CLI Plugin: spawn /workspace/project/node_modules/@sentry/cli/sentry-cli ENOENT

not installed by @sentry/cli

error: sentry-cli was not installed by @sentry/cli install script 

挣扎的姿势

.npmrc配置源

sentrycli_cdnurl=https://npm.taobao.org/mirrors/sentry-cli/

治标不治本,因为在单体模式下(非workspace)下,
走淘宝源安装是可以顺利且挺快的。。。
npm 7 workspace下还是找不到。
node_modules只装了一个残缺版本的@sentry/cli,
里面缺失sentry-cli这个(根据系统类型的二进制执行文件)。。

在主项目强装

# 就是清除缓存和强制安装,删除大法。。都试过。。
# 没啥用,
npm cache clean --force
rm -rf node_modules yarn.lock package-lock.json
npm install @sentry/cli  --force --legacy-peer-deps

# 为毛要--legacy-peer-deps
# 因为不是对等依赖的子包,常规的install会抛出如下异常
# ERESOLVE unable to resolve dependency tree

安装最新包

解决了这个问题,

error: sentry-cli was not installed by @sentry/cli install script 

最终解决(过渡方案)

我跑到nod