欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

优化 NPM 安装 Gulp 和 Laravel Elixir 的下载速度

程序员文章站 2022-04-03 09:26:45
...

本文经授权转自 PHPHub 社区

说明

Laravel Elixir 是官方推荐的静态资源管理工具,此工具合理的定义项目的开发流程,尤其针对前端开发,解决了很多通用问题,如;Sass 编译器,静态资源文件的版本与缓存清除等。

我们团队 甚至把 Laravel Elixir 作为每一个项目的必备基本开发流程。

国内因为网络原因,每一次 NPM 下载都挺慢,之前一直使用 VPN 来处理连接,也还能凑合使用,最近 VPN 不稳定,运行 npm install 就会异常痛苦。

解决方案

使用 淘宝 NPM 镜像 。

选项一、使用 cnpm 命令

这是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。

使用定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:

$ npm install -g cnpm --registry=https://registry.npm.taobao.org

上面命令安装好 cnpm 以后,以后就可以直接使用 cnpm 命令来安装依赖了,在某个使用 Laravel Elixir 的项目里直接执行:

$ cnpm install

会有类似以下的输出:

file

真的是如闪电一般的速度 :sparkles: :sparkles: 。

工作原理

从 registry.npm.taobao.org 安装所有模块. 当安装的时候发现安装的模块还没有同步过来, 淘宝 NPM 会自动在后台进行同步, 并且会让你从官方 NPM registry.npmjs.org 进行安装. 下次你再安装这个模块的时候, 就会直接从 淘宝 NPM 安装了.

关于其他的 npm 命令,因为是 只读 镜像,所以支持 npm 除了 publish 之外的所有命令, 如:

$ cnpm info connect

选项二、使用 cnpm 命令行别名

如果你更加愿意使用 npm 命令,可以使用传参 registry 方式来加速,命令行执行:

# Or alias it in .bashrc or .zshrc$ echo '\n#alias for cnpm\nalias cnpm="npm --registry=https://registry.npm.taobao.org \  --cache=$HOME/.npm/.cache/cnpm \  --disturl=https://npm.taobao.org/dist \  --userconfig=$HOME/.cnpmrc"' >> ~/.zshrc && source ~/.zshrc

同样的可以使用:

$ cnpm install

--