Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Commit 4c02d0b

Browse files
chore(docs-assets): add versions to paths for imported assets
This should prevent stale caches in browsers if we upgrade any of these assets.
1 parent 47ec6f5 commit 4c02d0b

File tree

2 files changed

+42
-24
lines changed

2 files changed

+42
-24
lines changed

docs/docs.config.js

+24-18
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ module.exports = function(config) {
99
var version = gruntUtils.getVersion();
1010
var cdnUrl = "//ajax.googleapis.com/ajax/libs/angularjs/" + version.cdn;
1111

12+
var getVersion = function(component, sourceFolder, packageFile) {
13+
sourceFolder = sourceFolder || '../bower_components';
14+
packageFile = packageFile || 'bower.json';
15+
return require(path.join(sourceFolder,component,packageFile)).version;
16+
};
17+
1218

1319
config = basePackage(config);
1420

@@ -38,20 +44,20 @@ module.exports = function(config) {
3844
'../angular-sanitize.js',
3945
'../angular-touch.js',
4046
'../angular-animate.js',
41-
'components/marked/lib/marked.js',
47+
'components/marked-' + getVersion('marked', '../node_modules', 'package.json') + '/lib/marked.js',
4248
'js/angular-bootstrap/bootstrap.js',
4349
'js/angular-bootstrap/bootstrap-prettify.js',
4450
'js/angular-bootstrap/dropdown-toggle.js',
45-
'components/lunr.js/lunr.js',
46-
'components/google-code-prettify/src/prettify.js',
47-
'components/google-code-prettify/src/lang-css.js',
51+
'components/lunr.js-' + getVersion('lunr.js') + '/lunr.js',
52+
'components/google-code-prettify-' + getVersion('google-code-prettify') + '/src/prettify.js',
53+
'components/google-code-prettify-' + getVersion('google-code-prettify') + '/src/lang-css.js',
4854
'js/versions-data.js',
4955
'js/pages-data.js',
5056
'js/docs.js'
5157
],
5258
stylesheets: [
53-
'css/bootstrap/css/bootstrap.css',
54-
'components/open-sans-fontface/open-sans.css',
59+
'components/bootstrap-' + getVersion('bootstrap') + '/dist/css/bootstrap.css',
60+
'components/open-sans-fontface-' + getVersion('open-sans-fontface') + '/open-sans.css',
5561
'css/prettify-theme.css',
5662
'css/docs.css',
5763
'css/animations.css'
@@ -67,20 +73,20 @@ module.exports = function(config) {
6773
'../angular-sanitize.min.js',
6874
'../angular-touch.min.js',
6975
'../angular-animate.min.js',
70-
'components/marked/lib/marked.js',
76+
'components/marked-' + getVersion('marked', '../node_modules', 'package.json') + '/lib/marked.js',
7177
'js/angular-bootstrap/bootstrap.js',
7278
'js/angular-bootstrap/bootstrap-prettify.js',
7379
'js/angular-bootstrap/dropdown-toggle.js',
74-
'components/lunr.js/lunr.min.js',
75-
'components/google-code-prettify/src/prettify.js',
76-
'components/google-code-prettify/src/lang-css.js',
80+
'components/lunr.js-' + getVersion('lunr.js') + '/lunr.min.js',
81+
'components/google-code-prettify-' + getVersion('google-code-prettify') + '/src/prettify.js',
82+
'components/google-code-prettify-' + getVersion('google-code-prettify') + '/src/lang-css.js',
7783
'js/versions-data.js',
7884
'js/pages-data.js',
7985
'js/docs.js'
8086
],
8187
stylesheets: [
82-
'components/bootstrap/dist/css/bootstrap.css',
83-
'components/open-sans-fontface/open-sans.css',
88+
'components/bootstrap-' + getVersion('bootstrap') + '/dist/css/bootstrap.min.css',
89+
'components/open-sans-fontface-' + getVersion('open-sans-fontface') + '/open-sans.css',
8490
'css/prettify-theme.css',
8591
'css/docs.css',
8692
'css/animations.css'
@@ -96,20 +102,20 @@ module.exports = function(config) {
96102
cdnUrl + '/angular-sanitize.min.js',
97103
cdnUrl + '/angular-touch.min.js',
98104
cdnUrl + '/angular-animate.min.js',
99-
'components/marked/lib/marked.js',
105+
'components/marked-' + getVersion('marked', '../node_modules', 'package.json') + '/lib/marked.js',
100106
'js/angular-bootstrap/bootstrap.js',
101107
'js/angular-bootstrap/bootstrap-prettify.js',
102108
'js/angular-bootstrap/dropdown-toggle.js',
103-
'components/lunr.js/lunr.min.js',
104-
'components/google-code-prettify/src/prettify.js',
105-
'components/google-code-prettify/src/lang-css.js',
109+
'components/lunr.js-' + getVersion('lunr.js') + '/lunr.min.js',
110+
'components/google-code-prettify-' + getVersion('google-code-prettify') + '/src/prettify.js',
111+
'components/google-code-prettify-' + getVersion('google-code-prettify') + '/src/lang-css.js',
106112
'js/versions-data.js',
107113
'js/pages-data.js',
108114
'js/docs.js'
109115
],
110116
stylesheets: [
111-
'components/bootstrap/dist/css/bootstrap.css',
112-
'components/open-sans-fontface/open-sans.css',
117+
'components/bootstrap-' + getVersion('bootstrap') + '/dist/css/bootstrap.min.css',
118+
'components/open-sans-fontface-' + getVersion('open-sans-fontface') + '/open-sans.css',
113119
'css/prettify-theme.css',
114120
'css/docs.css',
115121
'css/animations.css'

docs/gulpfile.js

+18-6
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ var jshint = require('gulp-jshint');
44
var bower = require('bower');
55
var docGenerator = require('dgeni');
66
var merge = require('event-stream').merge;
7+
var path = require('canonical-path');
78

89

910
// We indicate to gulp that tasks are async by returning the stream.
@@ -13,6 +14,17 @@ var merge = require('event-stream').merge;
1314
var outputFolder = '../build/docs';
1415
var bowerFolder = '../bower_components';
1516

17+
18+
var copyComponent = function(component, pattern, sourceFolder, packageFile) {
19+
pattern = pattern || '/**/*';
20+
sourceFolder = sourceFolder || bowerFolder;
21+
packageFile = packageFile || 'bower.json';
22+
var version = require(path.resolve(sourceFolder,component,packageFile)).version;
23+
return gulp
24+
.src(sourceFolder + '/' + component + pattern)
25+
.pipe(gulp.dest(outputFolder + '/components/' + component + '-' + version));
26+
};
27+
1628
gulp.task('bower', function() {
1729
return bower.commands.install();
1830
});
@@ -26,12 +38,12 @@ gulp.task('build-app', function() {
2638
gulp.task('assets', ['bower'], function() {
2739
return merge(
2840
gulp.src(['app/assets/**/*']).pipe(gulp.dest(outputFolder)),
29-
gulp.src(bowerFolder + '/bootstrap/**/*').pipe(gulp.dest(outputFolder + '/components/bootstrap')),
30-
gulp.src(bowerFolder + '/open-sans-fontface/**/*').pipe(gulp.dest(outputFolder + '/components/open-sans-fontface')),
31-
gulp.src(bowerFolder + '/lunr.js/*.js').pipe(gulp.dest(outputFolder + '/components/lunr.js')),
32-
gulp.src(bowerFolder + '/google-code-prettify/**/*').pipe(gulp.dest(outputFolder + '/components/google-code-prettify/')),
33-
gulp.src(bowerFolder + '/jquery/*.js').pipe(gulp.dest(outputFolder + '/components/jquery')),
34-
gulp.src('../node_modules/marked/**/*.js').pipe(gulp.dest(outputFolder + '/components/marked'))
41+
copyComponent('bootstrap'),
42+
copyComponent('open-sans-fontface'),
43+
copyComponent('lunr.js','/*.js'),
44+
copyComponent('google-code-prettify'),
45+
copyComponent('jquery'),
46+
copyComponent('marked', '/**/*.js', '../node_modules', 'package.json')
3547
);
3648
});
3749

0 commit comments

Comments
 (0)