Nix Integration for Stack

You might want to build your Haskell application with #Nix even if you did start with #Stack.

#Stack has support for building with #Nix. You need to add nix.enable: true to your stack.yaml file.

  enable: true
  packages: [glpk, pcre]

You can build your app with Nix now. Also, you can specify a custom shell file for defining environment variables or anything else. You need to remove the packages parameter and to add the shell-file parameter to stack.yaml file.

  enable: true
  shell-file: shell.nix 

After that, you can write your shell.nix file.

with (import <nixpkgs> {});
haskell.lib.buildStackProject {
    inherit ghc;
    name = "ScottyEnv";
    buildInputs = [pkgs.figlet zlib.out glpk pcre];
    shellHook = ''
    export PORT=3003;

And then, just run stack build or stack run or stack ghci commands.

#nix #haskell #stack #en