关于NPM post install的下载速度提升
最近在使用prisma gnerate client代码的时候突然发现网络错误无法下载binary文件
我记得我第一次开发electron的时候被electron postintall搞的头都大了,真的太慢了。
那时候刚刚做前端的时候,随着后面越来越多的库都有依赖post install下载binary
直到某一天我发现了Anthony Fu一篇踩坑记录NPM Binary 镜像配置,我才幡然醒悟,为什么npm,docker都有镜像,为什么这个binary没有镜像呢?
所有的主流post install都可以像如下配置在你的.bashrc类似的shell暴露环境变量
比如要配置的prima generate client的时候
可以像这样
PRISMA_ENGINES_MIRROR=https://cdn.npmmirror.com/binaries/prisma
也有electron可以有这种特殊配置在.npmrc
electron_mirror=https://npmmirror.com/mirrors/electron/
当然还有更多的binary镜像,你可以在github.com/cnpm/binary… 找到更多的镜像配置
"ENVS": {
"COREPACK_NPM_REGISTRY": "https://registry.npmmirror.com",
"NODEJS_ORG_MIRROR": "https://cdn.npmmirror.com/binaries/node",
"NVM_NODEJS_ORG_MIRROR": "https://cdn.npmmirror.com/binaries/node",
"PHANTOMJS_CDNURL": "https://cdn.npmmirror.com/binaries/phantomjs",
"CHROMEDRIVER_CDNURL": "https://cdn.npmmirror.com/binaries/chromedriver",
"OPERADRIVER_CDNURL": "https://cdn.npmmirror.com/binaries/operadriver",
"CYPRESS_DOWNLOAD_PATH_TEMPLATE": "https://cdn.npmmirror.com/binaries/cypress/${version}/${platform}-${arch}/cypress.zip",
"ELECTRON_MIRROR": "https://cdn.npmmirror.com/binaries/electron/",
"ELECTRON_BUILDER_BINARIES_MIRROR": "https://cdn.npmmirror.com/binaries/electron-builder-binaries/",
"SASS_BINARY_SITE": "https://cdn.npmmirror.com/binaries/node-sass",
"SWC_BINARY_SITE": "https://cdn.npmmirror.com/binaries/node-swc",
"NWJS_URLBASE": "https://cdn.npmmirror.com/binaries/nwjs/v",
"PUPPETEER_DOWNLOAD_HOST": "https://cdn.npmmirror.com/binaries/chrome-for-testing",
"PUPPETEER_DOWNLOAD_BASE_URL": "https://cdn.npmmirror.com/binaries/chrome-for-testing",
"PLAYWRIGHT_DOWNLOAD_HOST": "https://cdn.npmmirror.com/binaries/playwright",
"SENTRYCLI_CDNURL": "https://cdn.npmmirror.com/binaries/sentry-cli",
"SAUCECTL_INSTALL_BINARY_MIRROR": "https://cdn.npmmirror.com/binaries/saucectl",
"RE2_DOWNLOAD_MIRROR": "https://cdn.npmmirror.com/binaries/node-re2",
"RE2_DOWNLOAD_SKIP_PATH": "true",
"PRISMA_ENGINES_MIRROR": "https://cdn.npmmirror.com/binaries/prisma",
"npm_config_better_sqlite3_binary_host": "https://cdn.npmmirror.com/binaries/better-sqlite3",
"npm_config_keytar_binary_host": "https://cdn.npmmirror.com/binaries/keytar",
"npm_config_sharp_binary_host": "https://cdn.npmmirror.com/binaries/sharp",
"npm_config_sharp_libvips_binary_host": "https://cdn.npmmirror.com/binaries/sharp-libvips",
"npm_config_robotjs_binary_host": "https://cdn.npmmirror.com/binaries/robotjs"
},