# 使用“prebuild-install”下载指定架构

prebuild-install是node-gyp项目预编译安装命令，直接从网上下载不同平台已经编译好的二进制文件，免去了本地编译步骤，加速项目安装进度

### 下载命令

```bash
# 如何下载失败时不回退到源代码编译可添加参数“--fallback-to-build=false”
prebuild-install --fallback-to-build=false
```

### 使用场景

在gitlab-ci等自动集成打包环境下，不同平台的node-gyp依赖项目，如sqlite3只需要将预编译的二进制文件更新一下即可，不需要重新打包安装。下面将以sqlite3做为示例，添加如下`npm`脚本。

```json
{
  "name": "example",
  "scripts":"download:sqlite3": "cd node_modules/sqlite3 && prebuild-install -r napi --fallback-to-build=false",
  "...": "..."
}
```

如果需要下载linux版本，可使用如下命令

```
# 选择平台
export npm_config_platform=linux
# 选择cpu构架
export npm_config_arch=x64
# 执行下载命令
npm run download:sqlite3
```

具体的平台与CPU架构需要参考具体项目所支持的列表，最直接的方式是查看github上发布的预编译下载文件列表。比如：sqlite3的预编译发行文件可以在[https://github.com/TryGhost/node-sqlite3/releases](https://github.com/TryGhost/node-sqlite3/releases)上查看到

一般支持的平台如下：

- win32
- linux
- darwin
- linuxmusl（alpine发行版）

一般支持的CPU架构如下：

- arm64
- x64
- ia32

#### 参考资料

- [【CSDN】 - 什么是node-gyp？](https://blog.csdn.net/u010227042/article/details/115715741)
- [【腾讯云-开发者社区】node-gyp是用Node.js编写的跨平台命令行工具，用于为Node.js编译本机插件](https://cloud.tencent.com/developer/article/2316513)