为什么不推荐使用 cnpm?

发布于 2024-12-30 12:48:31 字数 3790 浏览 5 评论 0

配图源自 Freepik

在前端项目构建的过程中, npmyarn 应该是当前使用得最频繁的包管理工具了,他们帮助我们解决了复杂的依赖关系。在使用 npm 下载包时,由于是从国外的 NPM 服务器上下载,导致有时安装第三方包到本地时很慢,很蛋疼吧。

于是就有了 cnpm ,这是淘宝团队做的 淘宝 NPM 镜像 。你可以放心地用 cnpm 来代替 npm ,因为它同步频率为 10 分钟一次,以保证尽量与官方服务同步。

如果需要马上更新, cnpm 提供了一个特有命令 cnpm sync <pkg-name> 来同步某个模块。

「重要通知」原淘宝 npm 域名即将停止解析,请切换至新域名 npmmirror.comhttp://npm.taobao.orghttp://registry.npm.taobao.org 将在 2022.06.30 号正式下线和停止 DNS 解析。

相关域名切换参考如下:

http://npm.taobao.org => https://npmmirror.com
http://registry.npm.taobao.org => https://registry.npmmirror.com

一、使用 cnpm(不推荐)

使用 cnpm 命令替代 npm ,安装非常地简单。

它支持 npm 除了 npm publish 之外的所有命令。

  1. 安装
$ npm i -g cnpm --registry=https://registry.npmmirror.com/
  1. 测试是否成功安装
$ cnpm -v
  1. 安装模块
$ cnpm install [name]

二、替换 npm 镜像源

尽管我们安装并使用 cnpm ,但是有一些命令(如 create-react-app 等)它们内部还是使用了 npm 命令,仍是访问国外的镜像源,所以还是会慢。

首先,通过以下命令可以查看或设置 npm 的源地址:

# 查看 registry
$ npm config get registry

# 设置 registry
$ npm config set registry <registry-url>

下面我们将其修改为淘宝镜像源:

$ npm config set registry https://registry.npmmirror.com/

也可以直接在配置文件 ~/.npmrc 中添加一行配置并保存:

registry=https://registry.npm.taobao.org/

三、安装依赖包时,直接指定镜像源

这种方式太麻烦了,每次都要加上镜像源地址。

$ npm i <pkg-name> --registry=https://registry.npmmirror.com

四、为什么不推荐 cnpm 呢?

首先,使用 npm 作为前端项目包管理工具的话,使用 npmcnpm 来安装包时有区别的。通常我们前端项目中都会有 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 包,就很容易被坑到。

五、用更好的方式吗?

通常,个人在项目中使用得更多的是 yarn 。管理镜像源推荐使用 nrmyrm ,可以快速切换镜像源。前者仅会修改 npm 镜像源,后者会同时修改 npmyarn 镜像源。

另外,你有尝试过 pnpmcorepack 吗?

关于一些全局依赖包,个人使用习惯是:与 Node 版本有关的使用 npm 安装(比如 Taro CLI 等)并配合 nvm 工具进行管理,其他的一般使用 yarn 进行安装。

管理 Node 版本推荐使用 nvm 工具,但请注意,如果使用了 nvm 建议移除 ~/.npmrc 中的 prefix 配置项(如果有的话),否则全局包可能会安装到同一目录下,而不会随着 Node 的切换而变化(原因看 这里 )。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

游魂

暂无简介

文章
评论
27 人气
更多

推荐作者

微信用户

文章 0 评论 0

小情绪

文章 0 评论 0

ゞ记忆︶ㄣ

文章 0 评论 0

笨死的猪

文章 0 评论 0

彭明超

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文