chore(docs-assets): add versions to paths for imported assets

This should prevent stale caches in browsers if we upgrade any of these
assets.
This commit is contained in:
Peter Bacon Darwin
2014-02-17 14:01:30 +00:00
parent 47ec6f5d7f
commit 4c02d0bea5
2 changed files with 42 additions and 24 deletions

View File

@@ -9,6 +9,12 @@ module.exports = function(config) {
var version = gruntUtils.getVersion();
var cdnUrl = "//ajax.googleapis.com/ajax/libs/angularjs/" + version.cdn;
var getVersion = function(component, sourceFolder, packageFile) {
sourceFolder = sourceFolder || '../bower_components';
packageFile = packageFile || 'bower.json';
return require(path.join(sourceFolder,component,packageFile)).version;
};
config = basePackage(config);
@@ -38,20 +44,20 @@ module.exports = function(config) {
'../angular-sanitize.js',
'../angular-touch.js',
'../angular-animate.js',
'components/marked/lib/marked.js',
'components/marked-' + getVersion('marked', '../node_modules', 'package.json') + '/lib/marked.js',
'js/angular-bootstrap/bootstrap.js',
'js/angular-bootstrap/bootstrap-prettify.js',
'js/angular-bootstrap/dropdown-toggle.js',
'components/lunr.js/lunr.js',
'components/google-code-prettify/src/prettify.js',
'components/google-code-prettify/src/lang-css.js',
'components/lunr.js-' + getVersion('lunr.js') + '/lunr.js',
'components/google-code-prettify-' + getVersion('google-code-prettify') + '/src/prettify.js',
'components/google-code-prettify-' + getVersion('google-code-prettify') + '/src/lang-css.js',
'js/versions-data.js',
'js/pages-data.js',
'js/docs.js'
],
stylesheets: [
'css/bootstrap/css/bootstrap.css',
'components/open-sans-fontface/open-sans.css',
'components/bootstrap-' + getVersion('bootstrap') + '/dist/css/bootstrap.css',
'components/open-sans-fontface-' + getVersion('open-sans-fontface') + '/open-sans.css',
'css/prettify-theme.css',
'css/docs.css',
'css/animations.css'
@@ -67,20 +73,20 @@ module.exports = function(config) {
'../angular-sanitize.min.js',
'../angular-touch.min.js',
'../angular-animate.min.js',
'components/marked/lib/marked.js',
'components/marked-' + getVersion('marked', '../node_modules', 'package.json') + '/lib/marked.js',
'js/angular-bootstrap/bootstrap.js',
'js/angular-bootstrap/bootstrap-prettify.js',
'js/angular-bootstrap/dropdown-toggle.js',
'components/lunr.js/lunr.min.js',
'components/google-code-prettify/src/prettify.js',
'components/google-code-prettify/src/lang-css.js',
'components/lunr.js-' + getVersion('lunr.js') + '/lunr.min.js',
'components/google-code-prettify-' + getVersion('google-code-prettify') + '/src/prettify.js',
'components/google-code-prettify-' + getVersion('google-code-prettify') + '/src/lang-css.js',
'js/versions-data.js',
'js/pages-data.js',
'js/docs.js'
],
stylesheets: [
'components/bootstrap/dist/css/bootstrap.css',
'components/open-sans-fontface/open-sans.css',
'components/bootstrap-' + getVersion('bootstrap') + '/dist/css/bootstrap.min.css',
'components/open-sans-fontface-' + getVersion('open-sans-fontface') + '/open-sans.css',
'css/prettify-theme.css',
'css/docs.css',
'css/animations.css'
@@ -96,20 +102,20 @@ module.exports = function(config) {
cdnUrl + '/angular-sanitize.min.js',
cdnUrl + '/angular-touch.min.js',
cdnUrl + '/angular-animate.min.js',
'components/marked/lib/marked.js',
'components/marked-' + getVersion('marked', '../node_modules', 'package.json') + '/lib/marked.js',
'js/angular-bootstrap/bootstrap.js',
'js/angular-bootstrap/bootstrap-prettify.js',
'js/angular-bootstrap/dropdown-toggle.js',
'components/lunr.js/lunr.min.js',
'components/google-code-prettify/src/prettify.js',
'components/google-code-prettify/src/lang-css.js',
'components/lunr.js-' + getVersion('lunr.js') + '/lunr.min.js',
'components/google-code-prettify-' + getVersion('google-code-prettify') + '/src/prettify.js',
'components/google-code-prettify-' + getVersion('google-code-prettify') + '/src/lang-css.js',
'js/versions-data.js',
'js/pages-data.js',
'js/docs.js'
],
stylesheets: [
'components/bootstrap/dist/css/bootstrap.css',
'components/open-sans-fontface/open-sans.css',
'components/bootstrap-' + getVersion('bootstrap') + '/dist/css/bootstrap.min.css',
'components/open-sans-fontface-' + getVersion('open-sans-fontface') + '/open-sans.css',
'css/prettify-theme.css',
'css/docs.css',
'css/animations.css'

View File

@@ -4,6 +4,7 @@ var jshint = require('gulp-jshint');
var bower = require('bower');
var docGenerator = require('dgeni');
var merge = require('event-stream').merge;
var path = require('canonical-path');
// We indicate to gulp that tasks are async by returning the stream.
@@ -13,6 +14,17 @@ var merge = require('event-stream').merge;
var outputFolder = '../build/docs';
var bowerFolder = '../bower_components';
var copyComponent = function(component, pattern, sourceFolder, packageFile) {
pattern = pattern || '/**/*';
sourceFolder = sourceFolder || bowerFolder;
packageFile = packageFile || 'bower.json';
var version = require(path.resolve(sourceFolder,component,packageFile)).version;
return gulp
.src(sourceFolder + '/' + component + pattern)
.pipe(gulp.dest(outputFolder + '/components/' + component + '-' + version));
};
gulp.task('bower', function() {
return bower.commands.install();
});
@@ -26,12 +38,12 @@ gulp.task('build-app', function() {
gulp.task('assets', ['bower'], function() {
return merge(
gulp.src(['app/assets/**/*']).pipe(gulp.dest(outputFolder)),
gulp.src(bowerFolder + '/bootstrap/**/*').pipe(gulp.dest(outputFolder + '/components/bootstrap')),
gulp.src(bowerFolder + '/open-sans-fontface/**/*').pipe(gulp.dest(outputFolder + '/components/open-sans-fontface')),
gulp.src(bowerFolder + '/lunr.js/*.js').pipe(gulp.dest(outputFolder + '/components/lunr.js')),
gulp.src(bowerFolder + '/google-code-prettify/**/*').pipe(gulp.dest(outputFolder + '/components/google-code-prettify/')),
gulp.src(bowerFolder + '/jquery/*.js').pipe(gulp.dest(outputFolder + '/components/jquery')),
gulp.src('../node_modules/marked/**/*.js').pipe(gulp.dest(outputFolder + '/components/marked'))
copyComponent('bootstrap'),
copyComponent('open-sans-fontface'),
copyComponent('lunr.js','/*.js'),
copyComponent('google-code-prettify'),
copyComponent('jquery'),
copyComponent('marked', '/**/*.js', '../node_modules', 'package.json')
);
});