Playwright: Difference between revisions
TobiasBora (talk | contribs) →Installing browsers for Playwright under NixOS: Fonctionne si playwright n'a pas la bonne version. Tags: Mobile edit Mobile web edit |
Fix shell.nix example not setting allowUnfree = true, which can cause it to fail in some situations |
||
| (4 intermediate revisions by one other user not shown) | |||
| Line 8: | Line 8: | ||
An example <code>shell.nix</code> that installs [[ Visual Studio Code ]] and Playwright. | An example <code>shell.nix</code> that installs [[ Visual Studio Code ]] and Playwright. | ||
< | <syntaxhighlight lang="nix"> | ||
{ pkgs ? import <nixpkgs> {} }: | { pkgs ? import <nixpkgs> { config.allowUnfree = true; } }: | ||
pkgs.mkShell { | pkgs.mkShell { | ||
nativeBuildInputs = with pkgs; [ | nativeBuildInputs = with pkgs; [ | ||
vscode # if you want vscode | vscode # if you want vscode | ||
nodejs_latest | nodejs_latest | ||
playwright-driver.browsers | playwright-driver.browsers # !!! Make sure it has the same version as npm's version!! | ||
]; | ]; | ||
| Line 21: | Line 21: | ||
export PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS=true | export PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS=true | ||
export PLAYWRIGHT_HOST_PLATFORM_OVERRIDE="ubuntu-24.04" # Seems like it is not needed? | export PLAYWRIGHT_HOST_PLATFORM_OVERRIDE="ubuntu-24.04" # Seems like it is not needed? | ||
''; | |||
} | |||
</syntaxhighlight> | |||
{{Note|The version of Playwright in Nixpkgs and your node developer environment (in <code>package[-lock].json</code>) must match. See [https://www.nixhub.io/packages/playwright nixhub] to see if there is a version that matches npm in nixpkgs, if not you can also downgrade npm's version via <code>npm install playwright@nixversion</code>. See also [https://discourse.nixos.org/t/running-playwright-tests/25655 this discussion].}} | |||
== Using flake == | |||
This can easily be adapted within a flake like: | |||
<syntaxHighlight lang=nix> | |||
{ | |||
description = "A very basic flake"; | |||
inputs = { | |||
flake-parts.url = "github:hercules-ci/flake-parts"; | |||
nixpkgs.url = "github:nixos/nixpkgs"; | |||
}; | |||
outputs = { flake-parts, ... } @ inputs: flake-parts.lib.mkFlake { inherit inputs; } { | |||
perSystem = { config, self', inputs', pkgs, system, ... }: { | |||
devShells.default = pkgs.mkShell { | |||
nativeBuildInputs = with pkgs; [ | |||
nodejs_latest | |||
playwright-driver.browsers | |||
]; | |||
shellHook = '' | |||
export PLAYWRIGHT_BROWSERS_PATH=${pkgs.playwright-driver.browsers} | |||
export PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS=true; | |||
''; | |||
}; | |||
}; | |||
# Declared systems that your flake supports. These will be enumerated in perSystem | |||
systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; | |||
}; | |||
} | } | ||
</syntaxHighlight> | </syntaxHighlight> | ||
== Using Devenv == | == Using Devenv == | ||