summaryrefslogtreecommitdiff
path: root/bucky
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2017-12-14 21:47:23 +0100
committerJules Laplace <julescarbon@gmail.com>2017-12-14 21:47:23 +0100
commit7b56f23b11ef78dafae13495ef878cebaf97f061 (patch)
tree5b810d4f0c6bc70b6cde4f207a1d6ec325fab705 /bucky
parentfcf86a6e78fd6631dbc6b2046f4aff7cf08eef8a (diff)
js minify process for production
Diffstat (limited to 'bucky')
-rw-r--r--bucky/app/index.js5
-rw-r--r--bucky/bin/build-scripts.js33
-rw-r--r--bucky/bin/build-search.js3
-rw-r--r--bucky/search/lexicon.js2
-rw-r--r--bucky/util/middleware.js1
5 files changed, 43 insertions, 1 deletions
diff --git a/bucky/app/index.js b/bucky/app/index.js
index b600935..71b2d57 100644
--- a/bucky/app/index.js
+++ b/bucky/app/index.js
@@ -69,6 +69,11 @@ site.init = function(){
app.set('view engine', 'ejs')
app.set('views', path.join(__dirname, '../../views'))
app.use(express.static(path.join(__dirname, '../../public')))
+
+ // rebuild javascript after restarting server
+ if (process.env.NODE_ENV === 'production') {
+ require('../bin/build-scripts')
+ }
}
site.route = require('./router')
diff --git a/bucky/bin/build-scripts.js b/bucky/bin/build-scripts.js
new file mode 100644
index 0000000..43cb20e
--- /dev/null
+++ b/bucky/bin/build-scripts.js
@@ -0,0 +1,33 @@
+var fs = require('fs')
+var UglifyJS = require("uglify-es")
+
+var index = fs.readFileSync('views/partials/scripts.ejs', "utf8")
+
+var scripts = {}
+index.split('\n')
+ .map(line => {
+ var pz = line.split('"')
+ if (pz.length < 3) return null
+ return 'public' + pz[1]
+ })
+ .filter(fn => !! fn)
+ .forEach(fn => {
+ scripts[fn] = fs.readFileSync(fn, "utf8")
+ })
+
+var result = UglifyJS.minify(scripts, {
+ sourceMap: {
+ filename: "app.js",
+ url: "app.js.map"
+ }
+})
+if (result.error) {
+ console.error(result.error)
+}
+if (result.warnings) {
+ console.error(result.warnings)
+}
+fs.writeFileSync("public/assets/min/app.min.js", result.code, "utf8")
+fs.writeFileSync("public/assets/min/app.min.js.map", result.map, "utf8")
+
+
diff --git a/bucky/bin/build-search.js b/bucky/bin/build-search.js
new file mode 100644
index 0000000..d417087
--- /dev/null
+++ b/bucky/bin/build-search.js
@@ -0,0 +1,3 @@
+var search = require('../search/lexicon')
+search.build()
+
diff --git a/bucky/search/lexicon.js b/bucky/search/lexicon.js
index a9729fd..e6a9e84 100644
--- a/bucky/search/lexicon.js
+++ b/bucky/search/lexicon.js
@@ -9,7 +9,7 @@ var search_db = bdb('search')
var lexicon = {}
var total = 0
-build_index()
+module.exports = { build: build_index }
function build_index() {
parse_threads()
diff --git a/bucky/util/middleware.js b/bucky/util/middleware.js
index a744c89..a27e745 100644
--- a/bucky/util/middleware.js
+++ b/bucky/util/middleware.js
@@ -11,6 +11,7 @@ var middleware = module.exports = {
ensureLocals: function (req, res, next) {
res.locals.csrfToken = req.csrfToken()
res.locals.title = "bucky"
+ res.locals.env = process.env.NODE_ENV
if (req.isAuthenticated()) {
res.locals.show_header = true
}