在前端项目构建的过程中,npm
、yarn
应该是当前使用得最频繁的包管理工具了,他们帮助我们解决了复杂的依赖关系。在使用 npm
下载包时,由于是从国外的 NPM 服务器上下载,导致有时安装第三方包到本地时很慢,很蛋疼吧。
于是就有了 cnpm
,这是淘宝团队做的淘宝 NPM 镜像。你可以放心地用 cnpm
来代替 npm
,因为它同步频率为 10 分钟一次常,以保证尽量与官方服务同步。
方案一(不推荐):
使用 cnpm 命令替代 npm,安装非常地简单。
- 安装 cnpm
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
- 测试是否成功安装
$ cnpm -v
- 安装模块
$ cnpm install [name]
就这样,没了。
方案二(推荐):
尽管有了 npm
的替代方案,但是我们在一些命令时,比如 create-react-app
等,它们默认是使用 npm
命令,于是就有了方案二。
使用 npm config get registry
命令,我们可以知道 npm
的源地址是 https://registry.npmjs.org
。
$ npm config get registry
这个方案就是修改 registry
,让其指定 淘宝 npm 镜像
的地址,如下:
$ npm config set registry https://registry.npm.taobao.org
使用如下命令,我们可以知道是否修改成功了。
$ npm config get registry
# 或者使用
$ npm info express
或者直接修改 ~/.npmrc
来实现。
$ open ~/.npmrc
# 然后添加一行配置(去掉 # 号),然后保存就可以了
# registry=https://registry.npm.taobao.org/
然后你再使用npm
、 create-react-app
等命令,就会发现有多快了,哈哈。
方案三(不推荐):
太麻烦了,每次得加上 registry 源地址。
npm install --registry=https://registry.npm.taobao.org [name]
为什么推荐方案二呢?
首先,使用 npm 作为前端项目包管理工具的话,使用
npm
和cnpm
来安装包时有区别的。相信你们看到很多前端工程项目都存在一个
package-lock.json
的文件。就是跟它有关系。(关于 package-lock.json 的作用可以看这篇文章。)
cnpm i
不受package-lock.json
影响,只会根据package.json
进行下载安装。cnpm i xxx@xxx
不会跟新到package-lock.json
中去。npm i xxx@xxx
会跟新到package-lock.json
中去。在多人共同协作维护的项目中,package-lock.json 是必不可少的,是为了确保不同开发者安装的包及其依赖保持一致,同时也是降低不同版本 npm 包给项目稳定性带来的影响。(尤其是一些不遵循语义化版本控制的第三方 npm 包,就很容易被坑到。)
The end.
网友评论