vue-psa-architecture/flake.nix

48 lines
1.4 KiB
Nix

{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils, ... }:
flake-utils.lib.eachDefaultSystem (system:
let
cypressOverlay = final: prev: {
cypress = prev.cypress.overrideAttrs (oldAttrs: rec {
version = "12.3.0";
src = prev.fetchzip {
url = "https://cdn.cypress.io/desktop/${version}/linux-x64/cypress.zip";
sha256 = "sha256-RhPH/MBF8lqXeFEm2sd73Z55jgcl45VsmRWtAhckrP0=";
};
});
};
pkgs = import nixpkgs {
inherit system;
overlays = [ cypressOverlay ];
};
in
{
devShells = rec {
code = pkgs.mkShell {
packages = with pkgs; [
nodejs-18_x
nodePackages.vue-cli
nodePackages.vls # vue
nodePackages.typescript-language-server # typescript
nodePackages.vscode-langservers-extracted # html, css, json, eslint
];
};
e2e = pkgs.mkShell {
shellHook = ''
export CYPRESS_INSTALL_BINARY=0;
export CYPRESS_RUN_BINARY="${pkgs.cypress}/bin/Cypress";
'';
};
default = pkgs.mkShell {
inputsFrom = [ code e2e ];
};
};
});
}