问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

优化 npm 安装速度的 6 个技巧

创作时间:
作者:
@小白创作中心

优化 npm 安装速度的 6 个技巧

引用
1
来源
1.
https://webfem.com/post/npm-install-speed

npm安装速度慢是前端开发中常见的问题,尤其是在项目依赖较多时。本文总结了6个实用的优化方法,从使用国内镜像源到并行下载,再到使用替代工具,帮助开发者大幅提升npm包的安装效率。

引言

当项目依赖的包数量较多时,npm 需要下载和安装大量的文件,导致安装时间显著增加。尤其是对于大型项目,
node_modules
目录可能包含成千上万个文件,安装过程耗时较长。npm 默认从官方源(
https://registry.npmjs.org
)下载依赖包,对于国内开发者来说,由于网络延迟或限制,下载速度可能非常慢,甚至失败。
本文将通过多个手段,帮助大家提升 npm 的下载速度。

为什么 npm 安装速度慢?

  • 网络问题:npm 默认从官方源下载依赖,国内用户可能因网络问题导致下载速度慢。
  • 依赖数量多:项目依赖的包越多,安装时间越长。
  • 缓存未充分利用:npm 的缓存机制未被有效利用。
  • 锁文件冲突
    package-lock.json

    yarn.lock
    文件冲突可能导致重复安装。

优化方法

1. 使用国内镜像源

通过设置国内镜像,提高下载速度。最常用的就是淘宝镜像https://registry.npmmirror.com

设置镜像源的方法有两种:

  • 通过命令行设置 registry
npm config set registry https://registry.npmmirror.com  
  • 直接写到配置文件
    .npmrc
    中,这么做的好处是,其他人会默认使用淘宝镜像
registry="https://registry.npmmirror.com"  

2. 使用缓存

npm 在安装完 package 之后,会缓存在 ~/.npm (macOS)目录下,下次安装,npm 默认会先走缓存,没有的包才会通过网络请求。如果需要强制走缓存,可以添加
--prefer-offline
后缀。

npm install --prefer-offline  

3. 并行下载

npm 从7.0.0 版本开始支持并行下载依赖包,npm 7.0.0 对应的 Node.js 版本是15.0.0,因此如果你使用的是 Node.js 15.0.0 或更高版本,npm 将默认支持并行下载。

升级 npm 可以运行

npm install -g npm@latest  

由于 npm 和 nodejs 是配套的,建议还是升级nodejs版本。nodejs 版本管理可以参考:https://webfem.com/post/nvm

4. 减少依赖数量

  • 分析项目依赖,移除不必要的包。
  • 使用
    npm dedupe
    减少重复依赖。
  • 使用工具(如
    depcheck
    )检测未使用的依赖。

5. 跳过可选依赖的安装

npm 的可选依赖
optionalDependencies
)是指在项目中声明的一些依赖项,这些依赖项并不是项目运行所必需的。

例如,
fsevents
是一个仅在 macOS 上可用的文件系统事件监控库。在跨平台项目中,可以将
fsevents
声明为可选依赖,这样在其他操作系统上安装时不会报错,而在 macOS 上则可以利用该库的功能。

{
  "optionalDependencies": {
    "fsevents": "~2.3.2"
  }
}  

跳过可选依赖可以添加
--no-optional
后缀

npm install --no-optional  

6. 使用替代工具

使用
pnpm
代替 npm 下载,pnpm 通过硬链接减少磁盘空间占用,大大提升安装速度。用过的都说好。

同时 pnpm 兼容 npm 命令,可以无缝升级使用

// 全局安装 pnpm
npm i pnpm -g
// pnpm 安装 package
pnpm i lodash  

结语

希望这些方法能带来帮助。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号