Skip to content

Instantly share code, notes, and snippets.

@erikzrekz
Last active August 29, 2015 14:12
Show Gist options
  • Save erikzrekz/f8a36367344bcd3478d0 to your computer and use it in GitHub Desktop.
Save erikzrekz/f8a36367344bcd3478d0 to your computer and use it in GitHub Desktop.
Asset Pipeline for Express
'use strict';
var _ = require('underscore');
var path = require('path');
var rack = require('smaller-asset-rack');
var MANIFEST = path.join(config.root, 'public', 'assets.json');
var STYLESHEETS = [
'application.css.less'
];
var JAVASCRIPTS = [
'application.js',
'application-ie.js'
];
var assets = function() {
var assets;
var angularTemplateAssets;
var imageAssets;
var fontAssets;
var cssAssets;
var jsAssets;
if (config.assets.skip) {
return new rack.Rack([]);
}
imageAssets = [new rack.StaticAssets({
urlPrefix: '/assets',
dirname: path.join(config.root, 'assets', 'images'),
gzip: config.assets.gzip,
watch: config.assets.watchForChanges
})];
fontAssets = [new rack.StaticAssets({
urlPrefix: '/assets/fonts',
dirname: path.join(config.root, 'assets', 'fonts'),
gzip: config.assets.gzip,
watch: config.assets.watchForChanges
})];
angularTemplateAssets = [new rack.AngularTemplatesAsset({
url: '/assets/angular-templates.js',
dirname: path.join(config.root, 'assets', 'views'),
viewPrefix: '/views/',
compress: config.assets.compress,
watch: config.assets.watchForChanges
})];
cssAssets = _.map(STYLESHEETS, function(filename) {
return new rack.LessAsset({
url: '/assets/' + filename.replace('.less', ''),
filename: path.join(config.root, 'assets', 'stylesheets', filename),
compress: config.assets.compress,
gzip: config.assets.gzip,
watch: config.assets.watchForChanges
});
});
jsAssets = _.map(JAVASCRIPTS, function(filename) {
return new rack.BrowserifyAsset({
url: '/assets/' + filename,
filename: path.join(config.root, 'assets', 'javascripts', filename),
compress: config.assets.compress,
gzip: config.assets.gzip,
watch: config.assets.watchForChanges
});
});
assets = new rack.Rack(imageAssets
.concat(angularTemplateAssets)
.concat(fontAssets)
.concat(cssAssets)
.concat(jsAssets));
return assets;
};
module.exports.assets = assets;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment