尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

如何用 esbuild 的 dl.sh 从 npm 注册表直接下载当前平台的预编译二进制

如何用 esbuild 的 dl.sh 从 npm 注册表直接下载当前平台的预编译二进制 如何用 esbuild 的 dl.sh 从 npm 注册表直接下载当前平台的预编译二进制【免费下载链接】esbuildAn extremely fast bundler for the web项目地址: https://gitcode.com/GitHub_Trending/es/esbuild如果你不想走npm install也不想用 Go 从源码编译esbuild 仓库根目录提供了 dl.sh它根据你当前系统的操作系统和架构直接从 npm 注册表registry.npmjs.org下载对应平台的预编译二进制解压后把可执行文件放到当前目录。完成后可得到一份esbuild可执行文件用./esbuild --version验证即可。该脚本只覆盖部分平台macOS、Linux、NetBSD、OpenBSD 的少数架构组合运行前还需要准备好curl、tar并能访问 registry.npmjs.org。运行前的准备给脚本提供版本号dl.sh全程通过$ESBUILD_VERSION拼下载 URL如darwin-arm64-$ESBUILD_VERSION.tgz但脚本本身并没有给这个变量赋值。由于脚本开头有set -eu变量未定义时会在第一处引用就报错退出所以执行前必须先导出它export ESBUILD_VERSION0.28.10.28.1是当前仓库 version.txt 中记录、且 npm/esbuild 下各平台package.json正在使用的版本。也可以替换为 npm 上已发布的任意其他版本号。仓库里的dl.sh实际上是一个模板RUNBOOK.md 说明每次发版时会自动按版本生成dl/v0.X.Y和dl/latest两个脚本把版本号直接写进对应的下载命令中。手动使用时要么像上面那样导出变量要么直接编辑脚本、把$ESBUILD_VERSION替换成具体版本号。dl.sh 的执行流程与副作用脚本做的事依次是mktemp -d创建一个临时目录所有下载动作都发生在里面用uname -ms取「系统 架构」按case匹配到 npm 包名并用curl -fo从 registry.npmjs.org 下载.tgztar -xzf从压缩包中解出package/bin/esbuildmv到当前目录rm删除临时目录里的 tgz。脚本支持的完整平台清单uname -ms输出 → npm 包uname -ms 输出下载的 npm 包Darwin arm64esbuild/darwin-arm64Darwin x86_64esbuild/darwin-x64Linux arm64或Linux aarch64esbuild/linux-arm64Linux x86_64esbuild/linux-x64NetBSD amd64esbuild/netbsd-x64OpenBSD arm64esbuild/openbsd-arm64OpenBSD amd64esbuild/openbsd-x64不在上表的平台会命中*)分支打印error: Unsupported platform: uname 输出并以状态码 1 退出。副作用只需要关心两点会访问网络下载包会在当前目录写入一个名为esbuild的文件。临时目录中的 tgz 会被脚本自己删掉不会在系统其他位置留下文件。执行下载在希望放置可执行文件的目录中运行export ESBUILD_VERSION0.28.1 sh dl.sh执行成功时脚本没有额外输出当前目录会出现esbuild文件。由于set -eu的存在任何一步失败网络不通、URL 404、当前目录不可写都会立即中断可以据此判断脚本是否完整跑完。验证结果用--version参数检查拿到的二进制该参数在仓库 Makefile 中也被用于检查构建产物./esbuild --version输出应为版本号与你导出的ESBUILD_VERSION一致。如果当前目录下已有旧的esbuild文件先移走再运行避免被覆盖或覆盖旧文件。不支持的平台的替代方式dl.sh的case只覆盖上表 7 种组合Windows、FreeBSD 等平台的组合都会走到报错分支。如果需要在这些平台拿二进制可以参照仓库 Makefile 中validate-build目标使用的同一套 npm 注册表 URL 模式https://registry.npmjs.org/esbuild/平台包名/-/平台包名-版本号.tgz其中「平台包名」对应仓库 npm/esbuild 下为每个平台单独发布的包如win32-x64、freebsd-x64共 27 个。下载后解压二进制位于压缩包内的package/bin/esbuild与dl.sh中tar -xzf ... package/bin/esbuild取到的路径一致。限制只支持上表列出的 7 种「系统 架构」组合其余平台需手动按 URL 模式下载版本号必须替换为 npm 上实际发布的版本否则会 404脚本最后会rm掉下载的 tgz如需保留压缩包自行用同一 URL 下载二进制被mv到运行脚本时的当前目录注意确认当前目录是你想要的位置。【免费下载链接】esbuildAn extremely fast bundler for the web项目地址: https://gitcode.com/GitHub_Trending/es/esbuild创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表