引子
随着前段发展,基于node前端的工程化成为了日常工作标配。node在使用过程中,依赖的各种包需要使用npm来管理,但是!!npm在国内非常不好用,具体原因你懂的。所以就出现了各种神通解决这些问题。不外乎以下几种方案。
1.搬梯子爬墙:此方法需要买梯子,而且有风险。
2.cnpm :此方法是用cnpm 命令把安装的包指向了淘宝npm镜像库,下载软件包会快很多。但是还是有弊端的。只有使用cnpm安装npm包的时候才会指向淘宝镜像,很多npm包本身就依赖了很多其他包,而且集成了npm install,在安装一个包的依赖包时,还会使用npm install !!这就导致了使用cnpm安装某个包,但是中途还会报错。请问酸爽吗?
解决方案
那就没有更好的解决方法了么?当然有! 终极解决方法就是把npm命令的仓库源改成国内的,在某包使用npm命令去安装依赖包的时候,依然访问的是国内镜像。这就保证了安装时不会网络问题导致安装失败,但是也有缺点,换成国内镜像源后,你不能再publish ,因为国内源只是一个拷贝库,不能提交。但是对于只是使用和安装包来说,用不到publish。
具体实施
这里需要用到一个包,叫nrm,nrm是npm 资源管理器,允许你快速切换npm 源。
1.安装 npm install nrm -g
,安装成功后 可以输入 nrm help
查看帮助。
2.输入nrm ls
查看所有源。前面标星号的是当前使用源。
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
复制代码
3.使用nrm use taobao
切换到淘宝源,完成后 再次输入nrm ls
查看当前使用源。
nrm use taobao
Registry has been set to: https://registry.npm.taobao.org/
复制代码
4.至此,npm源就切换到了淘宝。可以愉快的使用npm了。如果想切换回npm官方源,输入
nrm use npm
就可以了。
5 .测试效果 下载一个jquery试试。 npm install jquery