From c803d1f0f3e3f422358d4fca34ce337bdde5383d Mon Sep 17 00:00:00 2001 From: Andriy Zhdanov Date: Fri, 16 Jan 2015 18:03:21 +0100 Subject: [PATCH 1/2] fingerpint support for requirejs --- lib/AssetGroupProcessors.js | 6 +++++- test/index.js | 13 ++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/lib/AssetGroupProcessors.js b/lib/AssetGroupProcessors.js index 6decbdf..bef2b59 100644 --- a/lib/AssetGroupProcessors.js +++ b/lib/AssetGroupProcessors.js @@ -63,7 +63,11 @@ module.exports = function(options) { }, requirejs: function(assetGroup, callback) { util.createDirForFileSync(assetGroup.filepath); - var mainAsset = assetGroup.createAsset(assetGroup.config.main); + var resourceName = (assetGroup.config.fingerprint) ? assetGroup.hash()+'-'+assetGroup.config.main : assetGroup.config.main; + var mainAsset = assetGroup.createAsset({ + name: assetGroup.config.main, + url: util.routeJoin(assetGroup.config.route || "", resourceName) + }); var libAsset = assetGroup.createAsset({ name : assetGroup.config.lib, attributes : [{ diff --git a/test/index.js b/test/index.js index 3f04211..f48851c 100644 --- a/test/index.js +++ b/test/index.js @@ -100,11 +100,18 @@ describe('Asset Middleware in production', function() { type: "requirejs", dir: "js", main: "app.js", - lib: "../lib/require.js" + lib: "../lib/require.js", + fingerprint: true, + files: [ // for fingerpint + 'app.js', + 'controllers/test.js' + ] } }, middlewareConf, function(err) { if(err) return done(err); - fs.readFile(path.join(middlewareConf.buildDir, "js", "app.js"), "utf8", function(err, content) { + var md5Hash = "5451665593271599f1f3b9544ec8eaeb"; + var fileName = md5Hash+"-app"; + fs.readFile(path.join(middlewareConf.buildDir, "js", fileName + ".js"), "utf8", function(err, content) { if(err) return done(err); assert.ok( content.length > 0 ); var res = { locals: {} }; @@ -113,7 +120,7 @@ describe('Asset Middleware in production', function() { var html = res.locals.asset("app.js"); assert.ok( html.doesContain('