优化 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
--