美文网首页
npm&yarn下包无入侵加速解决方案-快的一批

npm&yarn下包无入侵加速解决方案-快的一批

作者: SunSeekerX | 来源:发表于2020-07-24 10:53 被阅读0次

    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/

    相关文章

      网友评论

          本文标题:npm&yarn下包无入侵加速解决方案-快的一批

          本文链接:https://www.haomeiwen.com/subject/svcjlktx.html