这个问题可能并不精确,但这是我要实现的目标:
puppeteer-core
NPM软件包在运行时需要无头浏览器,我发现我可以将其与Nixpkgs中的最新Chromium一起使用。我当前的工作流程:
我已通过向node2nix
添加Chromium来覆盖default.nix
创建的override.nix
与buildInputs
:
{pkgs ? import <nixpkgs> {
inherit system;
}, system ? builtins.currentSystem}:
let
nodePackages = import ./default.nix {
inherit pkgs system;
};
in
nodePackages // {
shell = nodePackages.shell.override {
buildInputs = [ pkgs.chromium ];
};
}
问题nix-shell override.nix -A shell
。
export CHROMIUM_PATH=$(which chromium)
通过process.env.CHROMIUM_PATH
在javascript文件中设置Chromium。
这很好用,并且可以通过创建tarball与其他人轻松共享该项目,但是他们也必须手动设置环境,而且我也不希望Chromium包含在构建依赖项中。我本可以在Nix上将其全局安装,但是其余的手动步骤仍然存在。
我阅读了手册,对语言有所了解,但是还没有构建派生工具或程序包,因此,我确定我缺少明显的内容。
我在该主题上找到了一些讨论: