From c066b61363976a5b283f110e0a3136ffd30a3619 Mon Sep 17 00:00:00 2001 From: m4dz Date: Wed, 26 Oct 2016 15:13:23 +0200 Subject: [PATCH] [fix] update production build and add cache-busting --- package.json | 1 - scripts/build.sh | 26 ++++++++++++++++---------- server.coffee | 9 ++++++++- server/views/index.jade | 6 +++--- 4 files changed, 27 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 3040a7f1..4d5e15ac 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,6 @@ "test:server": "sh scripts/tests.sh", "lint": "sh scripts/lint.sh", "start": "node build/server.js", - "prebuild": "cd client && npm install", "watch": "npm-run-all --parallel 'watch:*'", "watch:client": "cd client && webpack --display-modules --display-chunks --watch", "watch:server": "coffee server.coffee" diff --git a/scripts/build.sh b/scripts/build.sh index 2fa698f6..f7d5f45c 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -1,14 +1,18 @@ #!/usr/bin/env bash +export PATH="./node_modules/.bin:$PATH" +export OPTIMIZE=true + + echo "Clean previous server" rm -rf build/server && mkdir -p build/server echo "Previous server cleaned." echo "Build server files..." -./node_modules/.bin/coffee -cb --output build/server server -./node_modules/.bin/coffee -cb --output build/ server.coffee -./node_modules/.bin/babel ./server/konnectors -d build/server/konnectors -./node_modules/.bin/babel ./server/lib -d build/server/lib +coffee -cb --output build/server server +coffee -cb --output build/ server.coffee +babel ./server/konnectors -d build/server/konnectors +babel ./server/lib -d build/server/lib echo "Server built." echo "Clean previous client build..." @@ -16,17 +20,19 @@ rm -rf build/client && mkdir -p build/client/app echo "Previous client cleaned." echo "Build entry point..." -./node_modules/.bin/jade ./client/index.jade -c --out ./build/client/ +mkdir -p ./build/server/views +jade --client --no-debug --hierarchy --out ./build/server ./server echo "var jade = require('jade/runtime');module.exports=" | \ - cat - ./build/client/index.js > ./build/client/index.js.tmp -mv ./build/client/index.js.tmp ./build/client/index.js + cat - ./build/server/views/index.js > ./build/server/views/index.js.tmp +mv ./build/server/views/index.js.tmp ./build/server/views/index.js echo "Entry point built." echo "Build locales..." -./node_modules/.bin/coffee -cb --output build/client/app/locales ./client/app/locales +cp -r ./client/app/locales ./build/client/app/ echo "Locales built." echo "Build client..." -cd client/ && npm i && ./node_modules/.bin/brunch build --production && cd .. -cp -R client/public build/client/ +cd ./client +npm install +webpack echo "Client built." diff --git a/server.coffee b/server.coffee index ec6516b3..1d4a924a 100755 --- a/server.coffee +++ b/server.coffee @@ -31,7 +31,14 @@ application = module.exports = (callback) -> log.info 'Import poller started.' callback(app, server) if callback? + # Try to get assets definitions from root + # (only valid in build, not on watch mode) + try + hash = ".#{require('./assets').hash}" + catch + hash = '' + app.locals.hash = hash + if not module.parent application() - diff --git a/server/views/index.jade b/server/views/index.jade index 1c934f7f..ffb59895 100644 --- a/server/views/index.jade +++ b/server/views/index.jade @@ -7,8 +7,8 @@ html(lang="en") title Cozy - Konnectors link(rel="stylesheet" href="/fonts/fonts.css") - link(rel="stylesheet" href="app.css") - - script(src="app.js" defer=true) + link(rel="stylesheet" href="app#{hash}.css") + script(src="app#{hash}.js" defer=true) + div(role="application")