77 lines
2.3 KiB
Nix
77 lines
2.3 KiB
Nix
{
|
||
inputs,
|
||
pkgs,
|
||
...
|
||
}:
|
||
inputs.devenv.lib.mkShell
|
||
{
|
||
inherit inputs pkgs;
|
||
modules = [
|
||
({
|
||
pkgs,
|
||
config,
|
||
...
|
||
}: {
|
||
packages = with pkgs; [
|
||
rustywind
|
||
nodePackages.prettier
|
||
nodePackages.eslint
|
||
|
||
# Node
|
||
nodejs_24
|
||
nodePackages.pnpm
|
||
playwright-driver.browsers
|
||
|
||
pocketbase
|
||
];
|
||
|
||
services.mailpit = {
|
||
enable = true;
|
||
# HTTP interface for viewing emails
|
||
uiListenAddress = "127.0.0.1:8025";
|
||
# SMTP server for receiving emails
|
||
smtpListenAddress = "127.0.0.1:1025";
|
||
};
|
||
processes = with pkgs; {
|
||
pocketbase.exec = "${pocketbase}/bin/pocketbase serve --dir ${config.devenv.root}/pb_data --dev";
|
||
dev.exec = "${nodePackages.pnpm}/bin/pnpm dev";
|
||
};
|
||
|
||
env = let
|
||
browsers = (builtins.fromJSON (builtins.readFile "${pkgs.playwright-driver}/browsers.json")).browsers;
|
||
chromium-rev = (builtins.head (builtins.filter (x: x.name == "chromium") browsers)).revision;
|
||
in {
|
||
PLAYWRIGHT_BROWSERS_PATH = "${pkgs.playwright.browsers}";
|
||
PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS = true;
|
||
PLAYWRIGHT_NODEJS_PATH = "${pkgs.nodejs}/bin/node";
|
||
PLAYWRIGHT_LAUNCH_OPTIONS_EXECUTABLE_PATH = "${pkgs.playwright.browsers}/chromium-${chromium-rev}/chrome-linux/chrome";
|
||
};
|
||
|
||
scripts.intro.exec = ''
|
||
playwrightNpmVersion="$(pnpm show @playwright/test version)"
|
||
echo "❄️ Playwright nix version: ${pkgs.playwright.version}"
|
||
echo "📦 Playwright pnpm version: $playwrightNpmVersion"
|
||
|
||
if [ "${pkgs.playwright.version}" != "$playwrightNpmVersion" ]; then
|
||
echo "❌ Playwright versions in nix (in devenv.yaml) and pnpm (in package.json) are not the same! Please adapt the configuration."
|
||
else
|
||
echo "✅ Playwright versions in nix and npm are the same"
|
||
fi
|
||
|
||
echo
|
||
env | grep ^PLAYWRIGHT
|
||
'';
|
||
|
||
enterShell = ''
|
||
echo "🚀 Nuxt.js development environment loaded!"
|
||
echo "📦 Node.js version: $(node --version)"
|
||
echo "📦 pnpm version: $(pnpm --version)"
|
||
echo ""
|
||
echo "Run 'pnpm install' to install dependencies"
|
||
echo "Run 'pnpm dev' to start the development server"
|
||
intro
|
||
'';
|
||
})
|
||
];
|
||
}
|