@@ -126,15 +126,22 @@ rec {
126126 touch "$out"
127127 obelisk-asset-manifest-generate "$src" "$haskellManifest" ${packageName} ${moduleName} "$symlinked"
128128 '';
129+ ghcjsExterns = ./ghcjs.externs.js;
129130 serverExe = backend: frontend: assets: config:
130− pkgs.runCommand "serverExe" {} ''
131+ pkgs.runCommand "serverExe" { buildInputs = [ pkgs.closurecompiler ]; } ''
131132 mkdir $out
132133 set -eux
133134 ln -s "${backend}"/bin/backend $out/backend
134− ln -s ${frontend}/bin/frontend.jsexe $out/frontend.jsexe
135135 ln -s "${assets}" $out/static
136136 ln -s "${config}" $out/config
137+
138+ mkdir $out/frontend.jsexe
139+ cd $out/frontend.jsexe
140+ ln -s "${frontend}/bin/frontend.jsexe/all.js" all.unminified.js
141+ closure-compiler --externs "${ghcjsExterns}" -O ADVANCED --create_source_map="all.js.map" --source_map_format=V3 --js_output_file="all.js" all.unminified.js
142+ echo "//# sourceMappingURL=all.js.map" >> all.js
137143 '';
144+
138145 server = exe: hostName:
139146 let system = "x86_64-linux";
140147 nixos = import (pkgs.path + /nixos);