There’s not really any reason to uglify or minify your JavaScript files on a per-request basis or on a pre-cache basis. This should be done at deployment time only. This can be achieved by adding uglify-js to your package.json file.
// default package.js for an expressjs app using ejs and uglify-js
{
"name": "application-name"
, "version": "0.0.1"
, "private": true
, "dependencies": {
"express": "2.4.6"
, "ejs": ">=0.4.3"
, "uglify-js": ">=1.1.0"
}
}
Make sure the dependencies are installed with
npm install -
Then, add the following make file and minify your JavaScripts as part of your make process!
JS = $(shell find public/javascripts/*.js)
MINIFY = $(JS:.js=.min.js)
all: clean $(MINIFY)
clean:
rm -f ./public/javascripts/*.min.js
%.min.js: %.js
node ./node_modules/uglify-js/bin/uglifyjs -o $@ $<
.PHONY: clean js minify
(expandable source is the same as the gist. It is doubled here to show in RSS feed readers.)