You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NixOS下用mkDerivation+PNPM安装依赖prebuild-install的包失败

在NixOS上使用pnpm安装依赖better-sqlite3的JavaScript应用失败

我需要在NixOS系统上安装一款依赖better-sqlite3的JavaScript应用,使用pnpm作为包管理器。better-sqlite3借助prebuild-install下载预编译二进制文件,无需在安装阶段编译C/C++代码。以下是最小可复现示例(MRE),使用仅包含package.json和pnpm-lock.yaml文件的Git仓库:

pkgs.stdenv.mkDerivation {
  pname = "test";
  version = "1.0.0";
  # 允许构建时访问网络
  __noChroot = true;
  src = builtins.fetchGit {
    url = "https://github.com/MartinRamm/pnpm-better-sqlite3.git";
    rev = "245f49b424b15d396d7a7fba44fcba5cbd751dd5";
    shallow = true;
  };
  buildInputs = with pkgs; [
    pnpm_10
    nodejs_23
    cacert
  ];
  buildPhase = "pnpm install --frozen-lockfile";
  installPhase = "cp -r . $out";
};

然而,在执行better-sqlite3的install生命周期脚本时构建失败,且pnpm未输出详细错误信息,错误内容如下:

node_modules/.pnpm/better-sqlite3@11.8.1/node_modules/better-sqlite3: Running install script...
node_modules/.pnpm/better-sqlite3@11.8.1/node_modules/better-sqlite3: Running install script, failed in 223ms
.../node_modules/better-sqlite3 install$
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
└─ Failed in 223ms at /tmp/nix-build-test-1.0.0.drv-0/source/node_modules/.pnpm/better-sqlite3@11.8.1/node_modules/better-sqlite3
ELIFECYCLE  Command failed with exit code 1.

内容的提问来源于stack exchange,提问作者PStigerID

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 22:02:02