国内访问外网都很慢,甚至不能访问!大家都懂,都很无奈!
安装Node时自带的npm地址默认是:http://registry.npmjs.org ,npm install没反应! 跟着下面操作来解决吧!
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] |
1 |
$ cnpm sync [moduleName] |
注意:cnpm支持 npm 除了 publish 之外的所有命令,也就是不支持publish,当然这并不影响我们使用,publish时换回npm即可,这样也能解决npm install无响应的问题。
智能的 npm,让你在中国使用 npm 时,下载速度更快,使用更方便!
用 npm 时,默认它会访问国外资源,所以会非常卡,有时甚至会被墙。现在市面上一般有三种解决方案:
其实 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 文件
1 |
mv $(which npm-original) $(dirname $(which npm-original))/npm |
本地安装也会替代了全局的 npm
nrm 是一个 NPM 源管理器,允许你快速地在如下 NPM 源间切换,现已支持now include: npm, cnpm, taobao,nj(nodejitsu), rednpm。
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