on master help sign in
Merge pull request #82 from tomsmalley/tom-minify-js

Minify JS for deployments

commit5af4b6481107fc241dfc6c0663623156a89080ee authorLuigy Leon <luichi.19@gmail.com> dateWed 16 May 2018, 15:12 (8 years ago) parent4893b146790a51
4 files changed+28−13
default.nix+8−2 dep/reflex-platform/default.nix+15−6 dep/reflex-platform/github.json+3−3 lib/command/src/Obelisk/Command.hs+2−2
default.nix+8−2
@@ -146,14 +146,20 @@ rec {
146146 obelisk-asset-manifest-generate "$src" "$haskellManifest" ${packageName} ${moduleName} "$symlinked"
147147 '';
148148 serverExe = backend: frontend: assets: config:
149− pkgs.runCommand "serverExe" {} ''
149+ pkgs.runCommand "serverExe" { buildInputs = [ pkgs.closurecompiler ]; } ''
150150 mkdir $out
151151 set -eux
152152 ln -s "${backend}"/bin/backend $out/backend
153− ln -s ${frontend}/bin/frontend.jsexe $out/frontend.jsexe
154153 ln -s "${assets}" $out/static
155154 ln -s "${config}" $out/config
155+
156+ mkdir $out/frontend.jsexe
157+ cd $out/frontend.jsexe
158+ ln -s "${frontend}/bin/frontend.jsexe/all.js" all.unminified.js
159+ closure-compiler --externs "${reflex-platform.ghcjsExternsJs}" -O ADVANCED --create_source_map="all.js.map" --source_map_format=V3 --js_output_file="all.js" all.unminified.js
160+ echo "//# sourceMappingURL=all.js.map" >> all.js
156161 '';
162+
157163 server = exe: hostName:
158164 let system = "x86_64-linux";
159165 nixos = import (pkgs.path + /nixos);
dep/reflex-platform/default.nix+15−6
@@ -1,7 +1,16 @@
11# DO NOT HAND-EDIT THIS FILE
2−import ((import <nixpkgs> {}).fetchFromGitHub (
3− let json = builtins.fromJSON (builtins.readFile ./github.json);
4− in { inherit (json) owner repo rev sha256;
5− private = json.private or false;
6− }
7−))
2+let
3+ fetch = { private ? false, ... }@args: if private && builtins.hasAttr "fetchGit" builtins
4+ then fetchFromGitHubPrivate args
5+ else (import <nixpkgs> {}).fetchFromGitHub (builtins.removeAttrs args ["branch"]);
6+ fetchFromGitHubPrivate =
7+ { owner, repo, rev, branch ? null, name ? null, sha256 ? null, private ? false
8+ , fetchSubmodules ? false, githubBase ? "github.com", ...
9+ }: assert !fetchSubmodules;
10+ builtins.fetchGit ({
11+ url = "ssh://git@${githubBase}/${owner}/${repo}.git";
12+ inherit rev;
13+ }
14+ // (if branch == null then {} else { ref = branch; })
15+ // (if name == null then {} else { inherit name; }));
16+in import (fetch (builtins.fromJSON (builtins.readFile ./github.json)))
dep/reflex-platform/github.json+3−3
@@ -1,7 +1,7 @@
11{
22 "owner": "reflex-frp",
33 "repo": "reflex-platform",
4− "branch": "develop",
5− "rev": "f70d210a59a2817293d3b6c3d960b5710aae5c03",
6− "sha256": "0hm4im0865j1vxdqhy987dp2v0wcqy5xfx2nzxq625slnsf458p1"
4+ "branch": "expose-ghcjs-externs-js",
5+ "rev": "0e2bf510ea89cdb916e3db91d695602ed8aa8f7b",
6+ "sha256": "11yg0c6fd0cfh17n1mp64l40mb5cqr13g8190q0b66nwqswlqyx9"
77}
lib/command/src/Obelisk/Command.hs+2−2
@@ -145,7 +145,7 @@ data DeployCommand
145145 deriving Show
146146
147147data DeployInitOpts = DeployInitOpts
148− { _deployInitOpts_ouputDir :: FilePath
148+ { _deployInitOpts_outputDir :: FilePath
149149 , _deployInitOpts_sshKey :: FilePath
150150 , _deployInitOpts_hostname :: [String]
151151 , _deployInitOpts_remote :: String
@@ -264,7 +264,7 @@ ob = \case
264264 ObCommand_Init source -> initProject source
265265 ObCommand_Deploy dc -> case dc of
266266 DeployCommand_Init deployOpts -> withProjectRoot "." $ \root -> do
267− let deployDir = _deployInitOpts_ouputDir deployOpts
267+ let deployDir = _deployInitOpts_outputDir deployOpts
268268 r <- liftIO $ canonicalizePath root
269269 rootEqualsTarget <- liftIO $ equalFilePath r <$> canonicalizePath deployDir
270270 when rootEqualsTarget $