我真的吐了,好绝望, NPM 的包管理真的是个坑

3 月 12 日
 Tink

想安装一个 NPM 版的 Claude Code ,然后就发生了下面的事情:

# tink @ Hackint0sh in /usr/local/lib/node_modules [23:32:52]
$ npm i @anthropic-ai/claude-code

added 3 packages, and removed 1826 packages in 14s

2 packages are looking for funding
  run npm fund for details

忘了打一个-g,又正好在/usr/local/lib/node_modules...

所有的全局包全部被清掉,1826 个,连 npm 、openclaw 都没了。。。

现在一个一个修,好绝望

2191 次点击
所在节点    这个世界不完美
13 条回复
Tiande
3 月 12 日
哈哈哈🤣好惨😭
liuliuliuliu
3 月 12 日
remove 的还挺快,1826 个 14 秒就 remove 完成了
albatron
3 月 12 日
为啥安装 cc 会导致其他包被删除呀,没懂
Tink
3 月 12 日
@albatron #3 看目录。。。。
albatron
3 月 12 日
@Tink 问了豆包,说是因为该目录下没有 package.json ,npm 下载时会把其他无关包删掉(第一次知道 npm 还有这默认行为),不过挺好奇你为啥要在这个目录下安装东西呢?
stinkytofux
3 月 12 日
我还真不知道 npm 这个行为, 那如果再 ~ 路径下执行, 岂不是会把整个用户目录都清空?
GPLer
3 月 12 日
正常来说 /usr 下的目录非 root 没写入权限吧,怎么写成功的
darkengine
3 月 12 日
@stinkytofux 只会清 node_modules 里的东西,也就是说如果在~目录,会清掉~/node_modules 里的其他库
donaldturinglee
3 月 12 日
我印象中 npm 的安装示例好像被官方移除出去了,现在是用 shell script 来安装
你这有点抽象了,怎么会停留在/usr/local/lib/node_modules 目录, 是要修改什么的源码吗?
iwh718
3 月 12 日
学到了。
JoeJoeJoe
3 月 12 日
哈哈哈, 真惨, 但是也提醒了你不要在非空目录下搞事情~
ko20
3 月 12 日
是 mac 电脑吗?你在命令提示符前面的符号是 $ 不是 #,那么不是 root 用户,在 /usr/local/lib/node_modules 下删除,是不是提示你输入密码,然后你输入了,临时借权到 root 于是全删了
Imindzzz
3 月 12 日
哈哈哈哈哈哈
赶紧提个 MR ,如果在全局目录,二次确认一下。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1197569

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX