文档章节

npm install 无响应解决方案

引鸩怼孑
 引鸩怼孑
发布于 2016/11/16 17:18
字数 1411
阅读 78
收藏 0

国内访问外网都很慢,甚至不能访问!大家都懂,都很无奈!
安装Node时自带的npm地址默认是:http://registry.npmjs.org ,npm install没反应! 跟着下面操作来解决吧!

方案一:使用cnpm

安装

 

 

1

$ npm install cnpm -g

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

 

1

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

 

安装模块

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

 

1

$ cnpm install [name]

 

同步(sync)模块

 

 

1

$ cnpm sync [moduleName]

 

注意: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 来为你完成吧!

安装

 

 

1

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

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

 

1

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

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

卸载

 

 

1

2

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

npm uninstall --global smart-npm

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

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

 

 

1

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

 

使用

  • 安装后系统的 npm 会被替换了,如果你要使用原生的 npm 命令,可以用 npm-original 代替。
  • 新的 npm 会自动根据你使用的命令切换 registry:当你使用 publish, config, adduser, star 等(click here to see more) 命令时,会强制使用官方的 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安装

 

 

1

$ npm install -g nrm

 

示例

 

 

1

2

3

4

5

6

7

8

$ 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

$ nrm use cnpm  //switch registry to cnpm

 

    Registry has been set to: http://r.cnpmjs.org/

 

使用

 

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

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

nrm add [home]

删除源:

 

1

nrm del

测试速度:

 

1

nrm test

注意: 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

原文连接:npm install 无响应解决方案,转载请注明出自体验盒子 | 关注网络安全

Tags: npm , npm install

本文转载自:http://www.uedbox.com/npm-install-slow-solution/

引鸩怼孑
粉丝 44
博文 207
码字总数 16947
作品 0
南京
项目经理
私信 提问
npm 模块安装机制简介

npm 是 Node 的模块管理器,功能极其强大。它是 Node 获得成功的重要原因之一。 正因为有了npm,我们只要一行命令,就能安装别人写好的模块 。 $ npm install 本文介绍 npm 模块安装机制的细...

小哥哥
2016/01/27
521
0
Less2css error 终极解决方案

使用sublime Text3 的时候,安装less2Css后,和很多人一样以为大功告成,开始要运行编译less文件,结果开始发现      于是乎开始搜索问题和解决方案,然后就有了下面的解决方案1   方案...

告别只是另一种体验
2015/12/02
38
0
Less2css error 终极解决方案

使用sublime Text3 的时候,安装less2Css后,和很多人一样以为大功告成,开始要运行编译less文件,结果开始发现      于是乎开始搜索问题和解决方案,然后就有了下面的解决方案1   方案...

告别只是另一种体验
2015/12/02
78
0
Windows环境下npm install 报错: operation not permitted, rename的解决方法

运行 npm install 命令安装依赖包,在 Mac 上的 Vagrant 装的虚拟机上没问题,在阿里云 CentOS 上也没问题,但是在 Windows 环境同样是 Vagrant 装的环境相同的虚拟机上就是不成功,报错如下...

呼呼南风
2017/10/30
116
0
【原创】响应式设计之移动端调试工具

背景 2013年是网页设计响应式的一年。所谓响应式网页设计,是由Ethan Marcotte在2010年提出的名词,指可以自动识别屏幕宽度、并做出相应调整的网页设计。简单来说就是同一张网页自动适应不同...

Mr.Zheng
2013/07/02
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

CSS盒子模型

一、什么叫框模型 页面元素皆为框(盒子) 定义了元素框处理元素内容,内边距,外边距以及边框的计算方式 二、外边距 围绕在元素边框外的空白距离(元素与元素之间的距离) 语法:margin,定...

wytao1995
今天
4
0
Replugin借助“UI进程”来快速释放Dex

public static boolean preload(PluginInfo pi) { if (pi == null) { return false; } // 借助“UI进程”来快速释放Dex(见PluginFastInstallProviderProxy的说明) return PluginFastInsta......

Gemini-Lin
今天
4
0
Hibernate 5 的模块/包(modules/artifacts)

Hibernate 的功能被拆分成一系列的模块/包(modules/artifacts),其目的是为了对依赖进行独立(模块化)。 模块名称 说明 hibernate-core 这个是 Hibernate 的主要(main (core))模块。定义...

honeymoose
今天
4
0
精华帖

第一章 jQuery简介 jQuery是一个JavaScript库 jQuery具备简洁的语法和跨平台的兼容性 简化了JavaScript的操作。 在页面中引入jQuery jQuery是一个JavaScript脚本库,不需要特别的安装,只需要...

流川偑
今天
7
0
语音对话英语翻译在线翻译成中文哪个方法好用

想要进行将中文翻译成英文,或者将英文翻译成中文的操作,其实有一个非常简单的工具就能够帮助完成将语音进行翻译转换的软件。 在应用市场或者百度手机助手等各大应用渠道里面就能够找到一款...

401恶户
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部