npm 包 安装,重装 的问题

2016-06-14 11:43:19 +08:00
 eromoe
最近学 react redux 之类的东西, npm 用的比较多,发现很多问题

1.npm install 有时候会出一堆错,完成后重新运行 npm install 又什么错都没有了(python 的 pip 就会自动安装没装过的包,虽然还是会出错,就是能看哪些错的。 但是 npm 给我的感觉不是这样,经常第二次什么错都不报了)

2.有时候 npm install 项目可以运行,有的时候不行,可能的解决办法是

* 再执行 npm install 后 莫名其妙又可以了
* 再执行 npm install 后不行,要删除 node_modules 重新 npm install (可能要重来多次)
* 添加某个包后,项目出问题 npm remove xxx 没效果(还有可能出现别的错误)
* npm remove xxx , npm install xxx 整个项目就起不来了,又要删 node_modules 重装。。。

3.npm 给我的感觉是 把 node_modules 删了以后,每次都重新下载,都没有用之前下过的缓存,非常低效,每次出问题重新安装都慢死了,很难受。。。。

希望大触来给说明说明。。。我实在搞不懂这些奇葩的问题是怎么发生的。。。


PS :环境是 windows 8.1 , npm 源 已经改为淘宝 (改~/.npmrc 文件的方法)
8197 次点击
所在节点    Node.js
15 条回复
fds
2016-06-14 11:59:32 +08:00
我的经验是 npm install 失败后,需要指定具体失败模块 npm install xxx 来重新安装。
如果涉及二进制文件编译的,还有个 npm rebuild 命令。

* npm remove xxx , npm install xxx 整个项目就起不来了
这种问题我没遇到过。是不是项目依赖有什么冲突。

最好加下 npm 版本号。
mgcnrx11
2016-06-14 12:02:39 +08:00
~/.npm 目录有缓存的( Windows 好像在 AppData 里面),慢是因为他要连官网去 check 更新,动不动就几百 M 的 modules 重新复制解包,以及那神奇的进度条拖慢了
eromoe
2016-06-14 12:48:44 +08:00
@fds npm install 经常会有什么编译失败之类的,但是貌似问题不大,有的时候能把项目跑起来,跑步起来就重新 npm install, 确实错误信息 会有一些写着 npm build 的,但是好像不是这个问题

@mgcnrx11 唉。。。这安装和删除的速度实在让人受不了啊。。。。
learnshare
2016-06-14 12:57:18 +08:00
npm install --loglevel silly
能看到完整的日志,比较方便查找安装失败的原因。
不过一般都是整个 mode_modules 删掉,重新来。因为偶尔也会遇到安装正常,但无法执行的问题。
eromoe
2016-06-14 13:19:15 +08:00
@learnshare 我现在碰到问题也只能删 node_modules 重装
就是觉得 node 社区这么大,怎么连一个包管理都有问题。。。这问题超难受。。。碰到大项目等半天。。。结果还是不行,删掉重来 T T
fds
2016-06-14 13:49:06 +08:00
warning 没什么关系, error 要重视起来。
你既然能重现,那应该在项目跑不起来的时候看看到底是哪里出了问题,所有 node_modules 都有源代码的,直接在里面加些 log 就行。时间紧的话可以删了重装,时间宽裕的情况下应该仔细研究下,避免今后再遇到。

另外 node6 太新了,现在 node4 才是 lts 。公司项目用 npm 部署没遇到你这些问题。
learnshare
2016-06-14 13:54:50 +08:00
@eromoe 其实 npm/git 本身出的问题并不多,主要坑在网络环境上。
scarlex
2016-06-14 13:55:19 +08:00
觉得慢的话你可以试试淘宝源
https://npm.taobao.org/
eromoe
2016-06-14 13:58:55 +08:00
@scarlex 请看主题,我一开始就上淘宝源了
eromoe
2016-06-14 14:10:06 +08:00
@fds 之前也是用 4 的 lts ,前 2 天碰到项目,安装完起不来, npm 提示是请把 node 升级到最新,如果还是出错那就联系作者,之类的意思,然后 github 里看到很多人都是用 5.0 以上的,有些包有的人说升级到 5.6 就没问题了
所以我就升了
eromoe
2016-06-14 14:11:06 +08:00
补充上面的,后来发现不是版本的问题,还是 node_modules 的问题,因为删了 2 次都出错,还以为是我装错了。。。
第三次删了装就好了。。。
youxiachai
2016-06-14 14:14:37 +08:00
用 npm...在 windows 很容易碰到路径过深的问题....
youxiachai
2016-06-14 14:16:04 +08:00
还有..用淘宝源..不意味着你的网络一定好......

保险起见...npm -d 走起吧..起码刷刷的看上去蛮有成就感..
mgcnrx11
2016-06-14 14:37:49 +08:00
用淘宝源但遇到一些要从 npm 之外的地方下载包的情况也是会失败的,如 phantomjs ,遇到了还得深入研究设置专门的源
xuzicn
2016-06-23 14:02:01 +08:00
https://github.com/xuzicn/share/blob/master/%E4%BB%8ERN%E7%9C%8B%E7%AC%AC%E4%B8%89%E6%96%B9%E5%8C%85%E4%BE%9D%E8%B5%96%E7%AE%A1%E7%90%86.md

这是我之前在一个群里分享的 RN 在 npm install 里的坑。有简略的剖析 npm 的运行机制,可能比较难啃,可以留言交流

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

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

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

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

© 2021 V2EX