Вопрос может быть не точным, но я пытаюсь достичь этого:
Пакет puppeteer-core
NPM требует автономного браузера во время выполнения, и я обнаружил, что могу использовать его с последней версией Chromium в Nixpkgs. Мой текущий рабочий процесс:
Я переопределил node2nix
-созданный 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)
Настройка Chromium в файлах javascript с помощью process.env.CHROMIUM_PATH
.
Это хорошо работает, и проект можно легко поделиться с другими, создав тарбол, но им также придется настраивать среду вручную, и мне также не нравится, когда Chromium включается в зависимости сборки. Я мог бы просто установить его глобально с Nix, но остальные шаги по-прежнему будут там.
Я прочитал руководства и освоился с языком, но еще не создал деривацию или пакет, поэтому уверен, что упустил что-то очевидное.
Некоторые обсуждения, которые я нашел по теме: