From cf88aa388ec7f666aeae0b75f59f38dbe4714355 Mon Sep 17 00:00:00 2001 From: Atridad Lahiji Date: Wed, 2 Jul 2025 01:40:03 -0600 Subject: [PATCH] Updated shell.nix --- shell.nix | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/shell.nix b/shell.nix index 0d74fd1..d2f73ca 100644 --- a/shell.nix +++ b/shell.nix @@ -4,7 +4,6 @@ pkgs.mkShell { buildInputs = with pkgs; [ nodejs_24 nodePackages.pnpm - chromium git curl ]; @@ -13,25 +12,27 @@ pkgs.mkShell { echo "🚀 atridotdad development environment loaded!" echo "Node version: $(node --version)" echo "pnpm version: $(pnpm --version)" - echo "Chromium path: ${pkgs.chromium}/bin/chromium" - # Playwright environment variables - export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 - export PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH="${pkgs.chromium}/bin/chromium" + # Always allow Playwright/Puppeteer to download their own browsers + export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=0 + export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=false - # Keep old Puppeteer vars for compatibility (in case you have other code using it) - export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true - export PUPPETEER_EXECUTABLE_PATH="${pkgs.chromium}/bin/chromium" if [ ! -d "node_modules" ]; then - echo "📦 Installing dependencies..." + echo "📦 Installing pnpm dependencies..." pnpm install fi + + # Check if Playwright browsers are installed and install them if not + PLAYWRIGHT_BROWSERS_PATH="$HOME/.cache/ms-playwright" + if [ ! -d "$PLAYWRIGHT_BROWSERS_PATH" ] || [ -z "$(ls -A "$PLAYWRIGHT_BROWSERS_PATH")" ]; then + echo "🌐 Installing Playwright browsers..." + pnpm exec playwright install --with-deps # --with-deps ensures all necessary drivers/libraries are also fetched + else + echo "✅ Playwright browsers already installed." + fi ''; - # Environment variables - PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD = "1"; - PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH = "${pkgs.chromium}/bin/chromium"; - PUPPETEER_SKIP_CHROMIUM_DOWNLOAD = "true"; - PUPPETEER_EXECUTABLE_PATH = "${pkgs.chromium}/bin/chromium"; + PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD = "0"; + PUPPETEER_SKIP_CHROMIUM_DOWNLOAD = "false"; } \ No newline at end of file