npm&yarn下包无入侵加速解决方案-快的一批
2020-07-24 本文已影响0人
SunSeekerX
1️⃣ 前言
无入侵,指的是不通过 npm config set registry http://registry.npm.taobao.org/
等类型的命令修改 registry
达到加速的目的。
如果你写过包上传到 npm
,这种替换 registry
的方式在你使用 npm publish
进行发包的时候需要切换回 npm
官方的镜像地址。
目前我用的就是替换 registry
这种方式解决的。但是像 node-sass
这种二进制文件下载还是用的国外地址。所以我有下面一堆的 registry
需要替换
npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass # node-sass 二进制包镜像
npm config set electron_mirror https://npm.taobao.org/mirrors/electron/ # electron 二进制包镜像
npm config set puppeteer_download_host https://npm.taobao.org/mirrors # puppeteer 二进制包镜像
npm config set chromedriver_cdnurl https://npm.taobao.org/mirrors/chromedriver # chromedriver 二进制包镜像
npm config set operadriver_cdnurl https://npm.taobao.org/mirrors/operadriver # operadriver 二进制包镜像
npm config set phantomjs_cdnurl https://npm.taobao.org/mirrors/phantomjs # phantomjs 二进制包镜像
npm config set selenium_cdnurl https://npm.taobao.org/mirrors/selenium # selenium 二进制包镜像
npm config set node_inspector_cdnurl https://npm.taobao.org/mirrors/node-inspector # node-inspector 二进制包镜像
npm config set node_sqlite3_binary_host_mirror https://npm.taobao.org/mirrors
npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/
npm config set phantomjs_cdnurl https://npm.taobao.org/mirrors/phantomjs/
npm config set electron_mirror https://npm.taobao.org/mirrors/electron/
yarn config set sass_binary_site https://npm.taobao.org/mirrors/node-sass # node-sass 二进制包镜像
yarn config set electron_mirror https://npm.taobao.org/mirrors/electron/ # electron 二进制包镜像
yarn config set puppeteer_download_host https://npm.taobao.org/mirrors # puppeteer 二进制包镜像
yarn config set chromedriver_cdnurl https://npm.taobao.org/mirrors/chromedriver # chromedriver 二进制包镜像
yarn config set operadriver_cdnurl https://npm.taobao.org/mirrors/operadriver # operadriver 二进制包镜像
yarn config set phantomjs_cdnurl https://npm.taobao.org/mirrors/phantomjs # phantomjs 二进制包镜像
yarn config set selenium_cdnurl https://npm.taobao.org/mirrors/selenium # selenium 二进制包镜像
yarn config set node_inspector_cdnurl https://npm.taobao.org/mirrors/node-inspector # node-inspector 二进制包镜像
非常的不方便,最近发现了一个无入侵的解决工具,试用了一会,非常好用。
2️⃣ tbify
Github:tbify
原理
基于环境变量对国内请求速度欠佳的资源地址进行了替换,具体分为两点:
- 通过环境变量令包管理工具(
npm
、npx
、yarn
、pnpm
、pnpx
)使用淘宝源安装依赖; - 通过环境变量令诸如
nvm
、node-sass
、Electron
、Puppeteer
、Cypress
、Sharp
等包使用淘宝镜像安装其自身所需资源。
以上,本工具对包管理工具本身零侵入,同时,对环境变量的设置也是一次性的,并不会产生任何的副作用,请放心使用。
安装
# npm
npm install tbify --global
# yarn
yarn global add tbify
# pnpm
pnpm add --global tbify
使用
对于常用的包管理命令,tbify
提供了使用淘宝 NPM 镜像的等价命令,除了发布包到 npm 时必须使用 npm publish
外,都可以使用等价命令进行相关操作:
原命令 | 使用淘宝 NPM 镜像的命令 | 示例 |
---|---|---|
nvm |
tnvm (或 tbify nvm ) |
tnvm install 8.0.0 |
npm |
tnpm (或 tbify npm ) |
tnpm install react |
npx |
tnpx (或 tbify npx ) |
tnpx kill-port 3000 |
yarn |
tyn (或 tbify yarn ) |
tyn add react |
pnpm |
tpm (或 tbify pnpm ) |
tpm add react |
pnpx |
tpx (或 tbify pnpx ) |
tpx kill-port 3000 |
对于其他命令,在使用时加上 tbify
前缀即可,比如:
tbify printenv npm_config_registry
# -> https://r.npm.taobao.org
3️⃣ 注意事项
- 如果之前有替换二进制文件下载地址最好改回来
-
npm
或yarn
的registry
改回官方的
关于我
SunSeekerX,前端开发、Nodejs开发、小程序、uni-app
开发、等等
喜欢探讨技术实现方案和细节,完美主义者,见不得bug
。
Github:https://github.com/SunSeekerX
个人博客:https://yoouu.cn/
个人在线笔记:https://sunseekerx.yoouu.cn/