npm install慢/无响应解决方案

简介: npm install慢/无响应解决方案

npm install慢/无响应解决方案

国内访问外网都很慢,甚至不能访问!大家都懂,都很无奈!

安装Node时自带的npm地址默认是:http://registry.npmjs.orgnpm install没反应! 跟着下面操作来解决吧!

方案一:使用cnpm

安装

$ npm install cnpm -g
• 1

如果你在中国,那么你可能需要使用这个源:淘宝 NPM 镜像:

$ npm install cnpm -g --registry=https://registry.npm.taobao.org
• 1

安装模块

registry.npm.taobao.org 安装所有模块. 当安装的时候发现安装的模块还没有同步过来, 淘宝 NPM 会自动在后台进行同步, 并且会让你从官方 NPMregistry.npmjs.org 进行安装. 下次你再安装这个模块的时候, 就会直接从 淘宝 NPM 安装了.

$ cnpm install [name]
• 1

同步(sync)模块

$ cnpm sync [moduleName]
• 1

注意:cnpm支持 npm 除了 publish 之外的所有命令,也就是不支持publish,当然这并不影响我们使用,publish时换回npm即可,这样也能解决npm install无响应的问题。

方案二:使用smart-npm

智能的 npm,让你在中国使用 npm 时,下载速度更快,使用更方便!

背景

用 npm 时,默认它会访问国外资源,所以会非常卡,有时甚至会被墙。现在市面上一般有三种解决方案:

  1. 在 .npmrc 上配置一个国内的 registry 镜像
  2. 使用 cnpm
  3. 使用 VPN
  • 第1个方案很粗暴,可以解决很多下载慢的问题,但是当你用 npm publish 时就会失败
  • 第2个方案不错,但这样你就又会遇到问题,到底哪些命令需要用 cnpm,哪些命令需要用 npm 呢?
  • VPN 方案有时也不能百分百解决问题,有时有些 VPN 也不稳定,但有个 VPN 很保险就是

其实 cnpm 的意图并不是简单给我们用来去下载 npm 资源的,它是为 cnpm 服务端(也可以理解成 npm 的私有仓库)服务的。

所以,我们就需要一个更智能的 npm 了,可以在我们使用 npm install 时自动从国内的镜像下载,而在我们使用 npm publish 又能发布到官方的 registry 上!

就让 smart-npm 来为你完成吧!

安装

npm install --global smart-npm --registry=https://registry.npm.taobao.org/
• 1

如果 window 用户安装最新版本不成功的话,可以试试安装 smart-npm@1 , 两者功能差不多是一样的, 发布版本 2 的主要原因是由于 npm 的升级,使的在 mac 上无法通过 bin 别名的方式覆盖原来的 npm, 只能通过先删除原来的 npm link 文件,再创建一个新的;但这种方式在 window 上可能会有问题, 所以,如果你是 window 用户,并且通过上面脚本无法安装成功的话,可以用下面脚本再试试。

npm install --global smart-npm@1 --registry=https://registry.npm.taobao.org/
• 1

安装成功后默认会在你的 npm 用户配置文件 ~/.npmrc 中添加淘宝的 registry。

卸载

npm smart uninstall   # 2.x.x 版本的 smart-npm 在卸载前需要先执行此脚本
npm uninstall --global smart-npm
• 1
• 2

要先执行 npm smart uninstall 是因为如果直接执行 npm uninstall 会导致找不到 npm 文件

Mac 或 Linux 用户可以使用下面命令恢复之前备份的 npm

mv $(which npm-original) $(dirname $(which npm-original))/npm
• 1

使用

  • 安装后系统的 npm 会被替换了,如果你要使用原生的 npm 命令,可以用 npm-original 代替。
  • 新的 npm 会自动根据你使用的命令切换 registry:当你使用 publish, config, adduser, star 等 命令时,会强制使用官方的 registry https://registry.npmjs.org;当你使用其它命令时,都会使用淘宝的镜像https://registry.npm.taobao.org/
  • 如果要强制使用某个 registry 时,只要在命令后面添加 registry 参数即可,比如, npm install jquery --registry=https://r.cnpmjs.org 就会使用你指定的 registry 去拉取 jquery
  • 如果要强制使用官方的 registry, 只要在命令后面加上 --npm 即可, 比如, npm install jquery --npm 就会使用官方的 registry 去拉取 jquery,(当镜像没有及时更新时,用此会选项很有效)
  • 如果你想修改默认的淘宝镜像或者官方的 registry,可以在你的环境变量中添加这两个参数:NPM_OFFICIAL_REGISTRY, NPM_MIRROR_REGISTRY,以此来修改默认的官方 registry 和 淘宝镜像 registry。 更多环境变量的配置请点击这里

本地安装也会替代了全局的 npm

方案三:使用nrm

nrm 是一个 NPM 源管理器,允许你快速地在如下 NPM 源间切换,现已支持now include: npm, cnpm, taobao,nj(nodejitsu), rednpm。

nrm安装

$ npm install -g nrm
• 1

示例

$ nrm ls
* npm -----  https://registry.npmjs.org/
  cnpm ----  http://r.cnpmjs.org/
  taobao --  https://registry.npm.taobao.org/
  nj ------  https://registry.nodejitsu.com/
  rednpm -- http://registry.mirror.cqupt.edu.cn
  skimdb -- https://skimdb.npmjs.com/registry
• 1
• 2
• 3
• 4
• 5
• 6
• 7
• 8
$ nrm use cnpm  //switch registry to cnpm
    Registry has been set to: http://r.cnpmjs.org/
• 1
• 2
• 3

使用

Usage: nrm [options] [command]
  Commands:
    ls                           List all the registries
    use                Change registry to registry
    add   [home]  Add one custom registry
    del                Delete one custom registry
    home  [browser]    Open the homepage of registry with optional browser
    test [registry]              Show the response time for one or all registries
    help                         Print this help
  Options:
    -h, --help     output usage information
    -V, --version  output the version number
• 1
• 2
• 3
• 4
• 5
• 6
• 7
• 8
• 9
• 10
• 11
• 12
• 13
• 14
• 15
• 16

增加源:

nrm add [home]
• 1

删除源:

nrm del
• 1

测试速度:

nrm test
• 1

注意: nrm只是一个源管理器,也不能使用publish命令。

以上三种方案均可解决npm install 慢npm install 无响应npm install 无法安装的问题。

参考

https://npm.taobao.org

https://github.com/cnpm/cnpm

https://github.com/qiu8310/smart-npm/

https://github.com/Pana/nrm

https://segmentfault.com/a/1190000002642514

相关文章
|
18天前
|
JavaScript
node环境之Error: Cannot find module ‘chalk’ 报错无法解决的问题—-网上说让你npm install chalk 基本是没有用的-优雅草央千澈解决方案
node环境之Error: Cannot find module ‘chalk’ 报错无法解决的问题—-网上说让你npm install chalk 基本是没有用的-优雅草央千澈解决方案
node环境之Error: Cannot find module ‘chalk’ 报错无法解决的问题—-网上说让你npm install chalk 基本是没有用的-优雅草央千澈解决方案
|
15天前
node环境之当我们遇到需要付费的依赖库@fortawesome/fontawesome-pro导致npm install无法进行怎么办-fontawesome-pro依赖库
node环境之当我们遇到需要付费的依赖库@fortawesome/fontawesome-pro导致npm install无法进行怎么办-fontawesome-pro依赖库
node环境之当我们遇到需要付费的依赖库@fortawesome/fontawesome-pro导致npm install无法进行怎么办-fontawesome-pro依赖库
|
17天前
|
JavaScript
nodejs安装之npm ERR! code CERT_HAS_EXPIREDnpm ERR! errno CERT_HAS_EXPIRED reason: certificate has expired-证书错误通用问题解决方案-优雅草央千澈
nodejs安装之npm ERR! code CERT_HAS_EXPIREDnpm ERR! errno CERT_HAS_EXPIRED reason: certificate has expired-证书错误通用问题解决方案-优雅草央千澈
|
17天前
|
JavaScript 前端开发 数据安全/隐私保护
npm账户需要登录问题npm error probably out of date. To correct this please try logging in again with优雅草央千澈解决方案
npm账户需要登录问题npm error probably out of date. To correct this please try logging in again with优雅草央千澈解决方案
npm账户需要登录问题npm error probably out of date. To correct this please try logging in again with优雅草央千澈解决方案
|
3月前
|
缓存 JavaScript 前端开发
拿下奇怪的前端报错(三):npm install卡住了一个钟- 从原理搞定安装的全链路问题
本文详细分析了 `npm install` 过程中可能出现的卡顿问题及解决方法,包括网络问题、Node.js 版本不兼容、缓存问题、权限问题、包冲突、过时的 npm 版本、系统资源不足和脚本问题等,并提供了相应的解决策略。同时,还介绍了开启全部日志、使用替代工具和使用 Docker 提供 Node 环境等其他处理方法。
2336 0
9-14|npm install --global windows-build-tools 安装太慢了,能够指定国内源
9-14|npm install --global windows-build-tools 安装太慢了,能够指定国内源
|
4月前
|
缓存 JavaScript 前端开发
8种方法解决vue创建项目报错:command failed: npm install --loglevel error
该文章提供了八种解决Vue项目创建时遇到的`command failed: npm install --loglevel error`错误的方法,包括清理缓存、更换npm源、重新安装Node.js等措施。
8种方法解决vue创建项目报错:command failed: npm install --loglevel error
|
5月前
optional install error: Error: Unsupported URL Type: npm:vue-loader@^16.1.0
optional install error: Error: Unsupported URL Type: npm:vue-loader@^16.1.0
59 3
|
5月前
|
JavaScript
【Deepin 20系统】Jupyter notebook解决ValueError: Please install Node.js and npm before continuing installa
文章讨论了在Deepin 20系统上安装Jupyter Notebook的debug插件时出现的"ValueError: Please install Node.js and npm before continuing installation"错误,并提供了使用conda安装Node.js的解决方法。
158 1
|
5月前
NPM——Electron failed to install correctly, please delete node_modules/electron and try
NPM——Electron failed to install correctly, please delete node_modules/electron and try
351 0

热门文章

最新文章

推荐镜像

更多