小抄:快速安装sqlite npm 的方法

2,991 阅读1分钟

node-pre-gyp是一个分发nodejs二进制程序包的工具,负责将预编译好的二进制程序直接下载到用户目录。它介于npm与node-gyp之间,只在相应平台二进制包不存在时才调用node-gyp编译。

node-pre-gyp存在的意义是什么呢?一些简单的nodejs C++扩展直接从源代码编译安装问题不大,但复杂的扩展编译环境难搭建、编译耗时长,因而从源代码安装非常麻烦。node-pre-gyp能够将预编译好的二进制包直接下载到用户目录,只在必要的时候才调用node-gyp从源代码编译,大大加快了nodejs C++扩展的安装速度。

node-pre-gyp需要开发者将各平台编译好的二进制包上传到网络上,并在package.json的binary字段指明二进制包的位置。然而,很多开发者选择将二进制包上传到aws上,导致国内无法正常下载(被墙)。幸好,可以在npm中设置--{module_name}_binary_host_mirror选项来指定二进制包的位置。比如按照sqlite3的方法:

npm install sqlite3 --node_sqlite3_binary_host_mirror=http://npm.taobao.org/mirrors
// or
npm config set node_sqlite3_binary_host_mirror=http://npm.taobao.org/mirrors/
npm install sqlite3

每次安装都要下载 binary,可以将下载的 tar.gz 文件放在本机的本机的服务器上

npm install sqlite3 --node_sqlite3_binary_host_mirror=http://localhost/mirrors

当 node 升级 major 时,需要等待 sqlite3 升级。 功夫好的,可以编译安装。