Nodejs npm 包 安装,重装 的问题

发布于 1周前 作者 sinazl 来自 nodejs/Nestjs

Nodejs npm 包 安装,重装 的问题
最近学 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 文件的方法)


16 回复

我的经验是 npm install 失败后,需要指定具体失败模块 npm install xxx 来重新安装。
如果涉及二进制文件编译的,还有个 npm rebuild 命令。

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

最好加下 npm 版本号。


~/.npm 目录有缓存的( Windows 好像在 AppData 里面),慢是因为他要连官网去 check 更新,动不动就几百 M 的 modules 重新复制解包,以及那神奇的进度条拖慢了

npm install 经常会有什么编译失败之类的,但是貌似问题不大,有的时候能把项目跑起来,跑步起来就重新 npm install, 确实错误信息 会有一些写着 npm build 的,但是好像不是这个问题

唉。。。这安装和删除的速度实在让人受不了啊。。。。

npm install --loglevel silly
能看到完整的日志,比较方便查找安装失败的原因。
不过一般都是整个 mode_modules 删掉,重新来。因为偶尔也会遇到安装正常,但无法执行的问题。

我现在碰到问题也只能删 node_modules 重装
就是觉得 node 社区这么大,怎么连一个包管理都有问题。。。这问题超难受。。。碰到大项目等半天。。。结果还是不行,删掉重来 T T

warning 没什么关系, error 要重视起来。
你既然能重现,那应该在项目跑不起来的时候看看到底是哪里出了问题,所有 node_modules 都有源代码的,直接在里面加些 log 就行。时间紧的话可以删了重装,时间宽裕的情况下应该仔细研究下,避免今后再遇到。

另外 node6 太新了,现在 node4 才是 lts 。公司项目用 npm 部署没遇到你这些问题。

其实 npm/git 本身出的问题并不多,主要坑在网络环境上。

觉得慢的话你可以试试淘宝源
https://npm.taobao.org/

请看主题,我一开始就上淘宝源了

之前也是用 4 的 lts ,前 2 天碰到项目,安装完起不来, npm 提示是请把 node 升级到最新,如果还是出错那就联系作者,之类的意思,然后 github 里看到很多人都是用 5.0 以上的,有些包有的人说升级到 5.6 就没问题了
所以我就升了

补充上面的,后来发现不是版本的问题,还是 node_modules 的问题,因为删了 2 次都出错,还以为是我装错了。。。
第三次删了装就好了。。。

用 npm…在 windows 很容易碰到路径过深的问题…

还有…用淘宝源…不意味着你的网络一定好…

保险起见…npm -d 走起吧…起码刷刷的看上去蛮有成就感…

用淘宝源但遇到一些要从 npm 之外的地方下载包的情况也是会失败的,如 phantomjs ,遇到了还得深入研究设置专门的源

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 的运行机制,可能比较难啃,可以留言交流

关于Node.js和npm包的安装与重装问题,以下是一些专业建议:

安装Node.js与npm

  1. 下载与安装

    • 访问Node.js官网(https://nodejs.org),下载适合操作系统的安装包。
    • 按照安装向导进行安装,建议选择“长期稳定版”。
    • 在安装过程中,确保勾选“Add to PATH”选项,以便将Node.js和npm添加到系统环境变量中。
  2. 验证安装

    • 打开命令行界面,输入node -vnpm -v,检查Node.js和npm是否安装成功。

重装Node.js与npm

  1. 卸载Node.js

    • 在控制面板中卸载Node.js程序。
    • 删除Node.js的安装目录及相关的npm文件夹(如C:\Users\用户名\AppData\Roaming\npm)。
    • 检查并删除环境变量中的Node.js和npm路径。
  2. 重新安装

    • 按照上述安装步骤重新下载并安装Node.js。
  3. 更新npm(如需):

    • 在命令行中输入npm install -g npm@latest,更新npm到最新版本。

注意事项

  • 在安装或重装过程中,确保网络连接正常。
  • 如遇权限问题,请尝试以管理员身份运行安装程序或命令行。
  • 定期更新Node.js和npm到最新版本,以保持兼容性和安全性。
回到顶部