乐趣区

关于前端:npmyarn下包无入侵解决方案

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

原理

基于环境变量对国内申请速度欠佳的资源地址进行了替换,具体分为两点:

  • 通过环境变量令包管理工具(npmnpxyarnpnpmpnpx)应用淘宝源装置依赖;
  • 通过环境变量令诸如 nvmnode-sassElectronPuppeteerCypressSharp 等包应用淘宝镜像装置其本身所需资源。

以上,本工具对包管理工具自身零侵入,同时,对环境变量的设置也是一次性的,并不会产生任何的副作用,请放心使用。

装置

# 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️⃣ 注意事项

  1. 如果之前有替换二进制文件下载地址最好改回来
  2. npmyarnregistry 改回官网的

对于我

SunSeekerX,前端开发、Nodejs 开发、小程序、uni-app 开发、等等

喜爱探讨技术实现计划和细节,完满主义者,见不得 bug

Github:https://github.com/SunSeekerX

集体博客:https://yoouu.cn/

集体在线笔记:https://sunseekerx.yoouu.cn/

退出移动版