大家不觉得npm在linux下有个权限问题吗?找喷!
npm在用户~/
下有.npm/
目录,里面是保存的安装过的package,是平铺保存的,即每个包是独立的,谁也不套着谁。
在某个工程里通过npm install
安装package.json里指定的依赖包,如果.npm里有的,则直接copy了,那么问题就来了:
通过sudo npm install -g A
, 如果A
依赖C
,则连这C
一起装了,放在了.npm下,权限是root.root
,如果普通用户再安装
B,B
也依赖C
,然后npm就报C
模块由于那啥权限原因,无法安装了。
每次碰到就跑到.npm
下去chown -R
.
4 回复
呃。。从来没遇到过。。普通用户在没有 sudo 时,如果 -g 安装呢?
应该是你某次 sudo install 的时候没有加 -g, 加了的话就不会写到当前用户的 home 里了
没遇到过。。。
@alsotang /usr/local/lib/
普通用户没权限写,所以要sudo. 我知道os x是ok的,但是linux不是,如果有那个发行版是例外的,请告知一下。