特价专区
cnpm 配置
cnpm 是什么?
学习NodeJs的同学无论是读前辈的博客时,还是在各论坛搜索资料时,大多会遇到$ cnpm install [name]的命令,众所周知npm(即 node package manager )是Node的包管理工具,能解决NodeJS代码部署上的很多问题。可是cnpm又是什么呢?
cnpm的官方介绍是:cnpm是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。既然都一样,那么cnpm为什么要出现呢?
由于npmjs.org的服务器在国外(即在“墙”外),国(墙)内开发者做项目的时候,很多“包”的下载速度极慢,在这种环境下阿里巴巴为了众多开发者的便捷便挺身而出推出了淘宝镜像(即cnpm),它把npm官方的“包”全部搬到国内,供广大开发者使用。
cnpm怎么配置?
有很多方法来配置npm的registry地址,下面根据不同情境列出几种比较常用的方法:
方法1、临时使用
npm --registry https://registry.npm.taobao.org install [依赖的名称]
方法2、持久使用(慎用)
注:这种方法不建议使用,因为使用这种方式会造成之后都要通过淘宝镜像来获取依赖包,如果是公司内部发布到npm的依赖包,会出现下载失败的情况
npm config set registry https://registry.npm.taobao.org
检查是否配置成功
npm config get registry
image.png
如果你配置后想回复默认的配置。 那么需要找到 C:\Users\Administrator 路径下的 .npmrc 文件
他的内容像这样:
image.png
当然也可能有其他内容,但是我们值要把registry这一行删除即可
检测配置:
image.png
方法3、安装cnpm(推荐)
推荐这种方式是因为既不会影响npm命令,又不用每次都写淘宝地址进行依赖包的安装
npm install -g cnpm --registry=https://registry.npm.taobao.org
或者通过添加npm参数alias一个新命令:
alias cnpm='npm --registry=https://registry.npm.taobao.org \ --cache=HOME/.cnpmrc'
Or alias it in .bashrc or .zshrc
HOME/.npm/.cache/cnpm \ --disturl=https://npm.taobao.org/dist \ --userconfig=$HOME/.cnpmrc'' >> ~/.zshrc && source ~/.zshrc
cnpm 怎么用?
安装模块
从registry.npm.taobao.org 安装所有模块. 当安装的时候发现安装的模块还没有同步过来, 淘宝 NPM 会自动在后台进行同步, 并且会让你从官方 NPMregistry.npmjs.org进行安装. 下次你再安装这个模块的时候, 就会直接从 淘宝 NPM 安装了.
$ cnpm install [name]
同步模块
直接通过 sync 命令马上同步一个模块, 只有 cnpm 命令行才有此功能:
image.png
cnpm sync connect
当然, 你可以直接通过 web 方式来同步: /sync/connect
open https://npm.taobao.org/sync/connect
其它命令
支持 npm 除了 publish 之外的所有命令, 如:
cnpm info connect
常见问题
randomUUID is not a function 问题
npm 升级后randomUUID方法被删除,所以解决办法有两个,一个是升级node版本,一个是降低cnpm版本,通常应该是降低cnpm版本
npm uninstall -g cnpm
npm install -g cnpm@7.1.1 // 7.x版本就支持randomUUID方法