如何将选项传递给 npm 的依赖包安装?

How to pass options to dependent package installs for npm?

我的 node.js 项目依赖于 node-sqlite,但不幸的是,那里嵌入的默认 libsqlite 二进制文件没有使用我需要的选项构建。

现在我可以单独调用 npm install 那个包来让它正确构建:

CFLAGS=-DSQLITE_ENABLE_STAT4 npm install sqlite3 --build-from-source

本质上,这会设置环境变量并将一个选项传递给工具。

但是,npm install 本身应该只安装 所有 项目依赖项,包括 sqlite。我如何编码 package.json 或其他地方,以便 npm install 将使用上述命令行安装 sqlite 依赖项?

您可以使用 preinstall or a postinstall 脚本来执行此操作。

#!/bin/bash

CFLAGS=-DSQLITE_ENABLE_STAT4 npm install sqlite3 --build-from-source;

将其放入 scripts/install_sqlite3_from_source.sh,并在 package.json 中设置 scripts.preinstallscripts.postinstall