npm install报错卡住不动怎么办,npm安装指南

问题

在使用npm install安装某个 npm 依赖包时,比如安装 vue

npm install vue

发现进度条一直卡住不动,或者一个包下载很久,相信很多朋友也遇到过。原因应该是国内的网络连接 npm 速度比较慢,甚至很多的依赖包都无法直接下载下来。那么如何解决这个问题呢?

方案一:淘宝镜像

npm 淘宝镜像源是淘宝出品的专为 npm 安装加速的国内镜像代理站,官方说明是每 10 分钟同步一次。国内代理也是用淘宝镜像最多,并且服务稳定。

代理的原理很简单,国外的服务器距离我们比较远,连接上去当然比较慢了,国内的淘宝服务器就多了,又近,当然你就比较快了。

使用淘宝的代理镜像有三种具体方案,下面给大家详细说明

  1. 一是当你是单个依赖无法安装的时候,可以简单的在安装命令后面加上--registry=https://registry.npm.taobao.org,将此次安装的 npm 源切换到淘宝的 npm 镜像站。比如安装 vue
npm install vue --registry=https://registry.npm.taobao.org # 一次性使用淘宝镜像

这个方案的好处是,针对个别的依赖库操作即可,不需要安装额外的依赖或者修改配置。

  1. 二是切换 npm 源的方式。直接把 npm 安装时用的来源切换到淘宝npm.taobao.org,就不用每次输入后缀了。设置
npm config set registry https://registry.npm.taobao.org #  设置npm镜像源为淘宝镜像

之后安装依赖还是正常的 npm 命令就行。

后续如果不想使用npm.taobao.org作为源了,可以重新切换回来

npm config set registry http://registry.npmjs.org # 设置npm镜像源为淘宝镜像

npm config get registry  # 查看npm当前镜像源
  1. 三是采用 cnpm 的安装方式,本质是也是切换镜像源。先安装 cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org # 目的是安装cnpm这个库,也是采用一次性使用淘宝镜像的方式

再在安装 npm 包时把 npm 改为 cnpm 即可,比如安装 vue

cnpm install vue

这个方法的好处是,同时支持 cnpm 和 npm 两种方式安装 npm 包,而不用像前面两个方法一样,要么加后缀要么重新切换源。

注意点:淘宝镜像源的方案也不是一劳永逸的,因为有小伙伴反馈说用了淘宝镜像安装后的依赖库有问题,但是用 npm 安装的就没问题,这种情况很少出现,但是一旦遇到,就是大坑,小伙伴们注意防范。

方案二:yarn

yarn 是新一代替代 npm 安装依赖包的方案,更好的处理依赖树,所以有些 npm 安装失败的问题,换成 yarn 可能就好了。

这里简要列出各个系统环境下的安装方法,如有疑问,可以访问yarn 中文网参考详细教程

  1. windows 环境下,直接 npm 安装
npm install -g yarn

或者去官网下载 yarn 软件安装

yarn 下载

  1. macOS 推荐直接使用 brew 安装
brew install yarn
  1. CentOS 也是命令安装
curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo

sudo yum install yarn

安装完后,使用以下命令测试 yarn 是否安装成功

yarn --version

然后我们就可以使用 yarn 来安装 npm 包了,这里贴出常用的一些命令对比。

npmyarn
npm installyarn add
npm install [package] --saveyarn add [package]
npm install [package] --save-devyarn add [package] --dev
npm install [package] --globalyarn global add [package]
npm update --globalyarn global upgrade
npm rebuildyarn add --force
npm uninstall [package]yarn remove [package]
npm cache cleanyarn cache clean [package]
rm -rf node_modules && npm installyarn upgrade
npm version majoryarn version --major
npm version minoryarn version --minor
npm version patchyarn version --patch

同样的如方案一,yarn 可能也需要配合切换镜像源使用。如下可以参考

yarn config get registry  #  查看yarn当前镜像源

yarn config set registry https://registry.npm.taobao.org/  #  设置yarn镜像源为淘宝镜像

另外,现在一些大型第三方库也在推荐使用 yarn 安装依赖库,比如 vue,这个可以作为重要的参考。但也不是绝对,因为也有小伙伴反馈用 yarn 出了问题,但是用 npm 是正常的。

因为每个人做的项目不同,npm 依赖间的关系错综复杂,很多时候还要看点运气,或者你测出了别人没遇到的 bug,毕竟,这些底层工具也是代码写的,代码写的就可能有 bug,找到自己最适合的工具就好。

方案三:专线链接

如果前两个方案都不太奏效,小编只能推荐一个终极大招了,彻底解决 npm 卡住不动,npm 下载慢,npm 安装报错等各种网络问题--专线直连。为什么是大招,小编你是不是忽悠我?

理由有两个,

  1. 一是虽然我们用了淘宝镜像源,但是第三方依赖包各种各样,奇葩的是还有的第三方库在下载的时候需要临时去别的网址下载它自己的依赖,而这个它自己的依赖咱们淘宝是没有代理的,或者说即使有的网址可以代理,那么多第三方库的额外网址,你也不可能都能帮你代理下载。最典型的依赖库如node-sassnode-gyp等(node-sass 和 node-gyp 的坑不止一个,这个等小编哪天再出详细教程)
  2. 二是小编之前遇到过这类坑,无论采用 cnpm,换镜像源,换 yarn,各种删除依赖重新安装,都不行,最后还是采用更科学的方式,才得以节约宝贵的开发时间。毕竟,各种工具要为我们的工作效率服务才行,不然就不是好工具。如果我们为了节省资金,但是耗费了大量的时间研究踩坑而没有结果,那岂不是浪费了更多的资金了,时间比资金更贵。

好了,不卖关子了,明白这类工具的好处的小伙伴,自然明白时间和好工具的重要性,请直接到小编推荐的专业网站操作

专业网站

专线直连最直接的方案就是购买服务 --鲁迅(误)

如果对此工具还有疑问的小伙伴,请参考这篇解读欣赏下小编的踩坑辛酸泪。。。

小编为了摆正姿势竟然干了这种事

参考

评论