Skip to content

Commit 434f89e

Browse files
committed
add build-templates task to optimize ngTemplates that registers AngularJS templates in the
1 parent b2ba413 commit 434f89e

File tree

11 files changed

+155
-22
lines changed

11 files changed

+155
-22
lines changed

gulp/desktop/build-templates.js

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
var gulp = require('gulp-help')(require('gulp')),
2+
gutil = require('gulp-util'),
3+
templateCache = require('gulp-angular-templatecache'),
4+
size = require('gulp-size'),
5+
uglify = require('gulp-uglify'),
6+
replace = require('gulp-replace'),
7+
gulpif = require('gulp-if'),
8+
vp = require('vinyl-paths'),
9+
del = require('del');
10+
11+
var envUtil = require('../common/env-util');
12+
13+
var paths = {
14+
origin: 'views/desktop/templates',
15+
compiled: 'public/compiled/desktop/scripts'
16+
};
17+
18+
gulp.task('desktop-build-templates-no-clean', function () {
19+
return gulp.src([
20+
paths.origin + '/**/*.html'
21+
]).pipe(gulpif(!envUtil.isProduction(), size({title: 'desktop - template html - size'})))
22+
.pipe(templateCache('templates.min.js', {
23+
root: '/desktop/templates',
24+
module: 'angularApp',
25+
standalone: false,
26+
moduleSystem: 'RequireJS'
27+
}).on('error', gutil.log))
28+
.pipe(replace(/^define\(/, 'define(\'desktop/templates\'\,').on('error', gutil.log))
29+
.pipe(gulpif(!envUtil.isProduction(), size({title: 'desktop - template html - size - ng-html2js'})))
30+
.pipe(uglify().on('error', gutil.log))
31+
.pipe(gulpif(!envUtil.isProduction(), size({title: 'desktop - template html - size - uglify js'})))
32+
.pipe(gulp.dest(paths.compiled));
33+
});
34+
35+
gulp.task('desktop-clean-templates', function () {
36+
return gulp.src([
37+
paths.compiled + '/templates.min.js'
38+
], {
39+
read: false
40+
}).pipe(vp(del).on('error', gutil.log));
41+
});
42+
43+
gulp.task('desktop-build-templates', ['desktop-clean-templates'], function () {
44+
gulp.start('desktop-build-templates-no-clean');
45+
});

gulp/desktop/build.js

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
11
var gulp = require('gulp-help')(require('gulp'));
22

3-
require('./build-scripts.js');
4-
require('./build-styles.js');
3+
require('./build-scripts');
4+
require('./build-styles');
5+
require('./build-templates');
56

67
gulp.task('desktop-clean', function () {
7-
gulp.start('desktop-clean-scripts', 'desktop-clean-styles');
8+
gulp.start('desktop-clean-scripts', 'desktop-clean-styles',
9+
'desktop-clean-templates');
810
});
911

1012
gulp.task('desktop-build-no-clean', function () {
11-
gulp.start('desktop-build-scripts-no-clean', 'desktop-build-styles-no-clean');
13+
gulp.start('desktop-build-scripts-no-clean', 'desktop-build-styles-no-clean',
14+
'desktop-build-templates-no-clean');
1215
});
1316

1417
gulp.task('desktop-build', function () {
15-
gulp.start('desktop-build-scripts', 'desktop-build-styles');
18+
gulp.start('desktop-build-scripts', 'desktop-build-styles',
19+
'desktop-build-templates');
1620
});

gulp/gulp-docker.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ gulp.task('clean-styles', function () {
1717
gulp.start('desktop-clean-styles', 'mobile-clean-styles');
1818
});
1919

20+
gulp.task('clean-templates', function () {
21+
gulp.start('desktop-clean-templates', 'mobile-clean-templates');
22+
});
23+
2024
gulp.task('clean', function () {
2125
gulp.start('desktop-clean', 'mobile-clean');
2226
});
@@ -37,6 +41,14 @@ gulp.task('build-styles', function () {
3741
gulp.start('desktop-build-styles', 'mobile-build-styles');
3842
});
3943

44+
gulp.task('build-templates-no-clean', function () {
45+
gulp.start('desktop-build-templates-no-clean', 'mobile-build-templates-no-clean');
46+
});
47+
48+
gulp.task('build-templates', function () {
49+
gulp.start('desktop-templates-styles', 'mobile-templates-styles');
50+
});
51+
4052
gulp.task('build-no-clean', function () {
4153
gulp.start('desktop-build-no-clean', 'mobile-build-no-clean');
4254
});

gulp/mobile/build-templates.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
var gulp = require('gulp-help')(require('gulp')),
2+
gutil = require('gulp-util'),
3+
templateCache = require('gulp-angular-templatecache'),
4+
size = require('gulp-size'),
5+
uglify = require('gulp-uglify'),
6+
concat = require('gulp-concat'),
7+
replace = require('gulp-replace'),
8+
gulpif = require('gulp-if'),
9+
vp = require('vinyl-paths'),
10+
del = require('del');
11+
12+
var envUtil = require('../common/env-util');
13+
14+
var paths = {
15+
origin: 'views/mobile/templates',
16+
compiled: 'public/compiled/mobile/scripts'
17+
};
18+
19+
gulp.task('mobile-build-templates-no-clean', function () {
20+
return gulp.src([
21+
paths.origin + '/**/*.html'
22+
]).pipe(gulpif(!envUtil.isProduction(), size({title: 'mobile - template html - size'})))
23+
.pipe(templateCache('templates.min.js', {
24+
root: '/mobile/templates',
25+
module: 'angularApp',
26+
standalone: false,
27+
moduleSystem: 'RequireJS'
28+
}).on('error', gutil.log))
29+
.pipe(replace(/^define\(/, 'define(\'mobile/templates\'\,').on('error', gutil.log))
30+
.pipe(gulpif(!envUtil.isProduction(), size({title: 'mobile - template html - size - ng-html2js'})))
31+
.pipe(uglify().on('error', gutil.log))
32+
.pipe(gulpif(!envUtil.isProduction(), size({title: 'mobile - template html - size - uglify js'})))
33+
.pipe(gulp.dest(paths.compiled));
34+
});
35+
36+
gulp.task('mobile-clean-templates', function () {
37+
return gulp.src([
38+
paths.compiled + '/templates.min.js'
39+
], {
40+
read: false
41+
}).pipe(vp(del).on('error', gutil.log));
42+
});
43+
44+
gulp.task('mobile-build-templates', ['mobile-clean-templates'], function () {
45+
gulp.start('mobile-build-templates-no-clean');
46+
});

gulp/mobile/build.js

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
11
var gulp = require('gulp-help')(require('gulp'));
22

3-
require('./build-scripts.js');
4-
require('./build-styles.js');
3+
require('./build-scripts');
4+
require('./build-styles');
5+
require('./build-templates');
56

67
gulp.task('mobile-clean', function () {
7-
gulp.start('mobile-clean-scripts', 'mobile-clean-styles');
8+
gulp.start('mobile-clean-scripts', 'mobile-clean-styles',
9+
'mobile-clean-templates');
810
});
911

1012
gulp.task('mobile-build-no-clean', function () {
11-
gulp.start('mobile-build-scripts-no-clean', 'mobile-build-styles-no-clean');
13+
gulp.start('mobile-build-scripts-no-clean', 'mobile-build-styles-no-clean',
14+
'mobile-build-templates-no-clean');
1215
});
1316

1417
gulp.task('mobile-build', function () {
15-
gulp.start('mobile-build-scripts', 'mobile-build-styles');
18+
gulp.start('mobile-build-scripts', 'mobile-build-styles',
19+
'mobile-build-templates');
1620
});

middleware/middleware-config.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,21 +55,21 @@ function staticMiddleware(app, options) {
5555
app.use('/static/scripts/mobile', express.static(process.cwd() + '/public/compiled/mobile/scripts', options));
5656
} else {
5757
app.use('/static', express.static(process.cwd() + '/public', options));
58+
app.use('/*/templates', function (req, res, next) {
59+
res.render(req.originalUrl.substr(1), function (err, html) {
60+
if (err) {
61+
next();
62+
} else {
63+
res.send(html);
64+
}
65+
});
66+
});
5867
}
5968

6069
app.use('/static/styles/desktop', express.static(process.cwd() + '/public/compiled/desktop/styles', options));
6170
app.use('/static/styles/mobile', express.static(process.cwd() + '/public/compiled/mobile/styles', options));
6271
app.use('/static/libs', express.static(process.cwd() + '/public/libs', options));
6372
app.use('/static/images', express.static(process.cwd() + '/public/images', options));
64-
app.use('/*/templates', function (req, res, next) {
65-
res.render(req.originalUrl.substr(1), function (err, html) {
66-
if (err) {
67-
next();
68-
} else {
69-
res.send(html);
70-
}
71-
});
72-
});
7373
}
7474

7575
module.exports = middlewareConfig;

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
"express": "^4.13.3",
2929
"fs-extra": "^0.24.0",
3030
"gulp": "^3.9.0",
31+
"gulp-angular-templatecache": "^1.8.0",
3132
"gulp-concat": "^2.6.0",
3233
"gulp-help": "^1.6.1",
3334
"gulp-if": "^2.0.0",
@@ -36,6 +37,7 @@
3637
"gulp-markdown": "^1.2.0",
3738
"gulp-minify-css": "^1.2.1",
3839
"gulp-plumber": "^1.0.1",
40+
"gulp-replace": "^0.5.4",
3941
"gulp-size": "^2.0.0",
4042
"gulp-uglify": "^1.4.1",
4143
"gulp-util": "^3.0.6",

views/desktop/render/layout.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@
4343
};
4444
}
4545

46+
{% if !isDevMode %}
47+
GlobalConfig.requireScripts.push('desktop/templates');
48+
{% endif %}
4649
{% if scripts %}
4750
{% for script in scripts %}
4851
GlobalConfig.requireScripts.push('{= script =}');
@@ -56,6 +59,7 @@
5659
<script src="/static/scripts/desktop/bootstrap.js"></script>
5760
{% else %}
5861
<script src="{= '/static/scripts/desktop/libs.min.js' | buildNumber =}"></script>
62+
<script src="{= '/static/scripts/desktop/templates.min.js' | buildNumber =}"></script>
5963
<script src="{= '/static/scripts/desktop/apps.min.js' | buildNumber =}"></script>
6064
{% endif %}
6165
</body>

views/desktop/templates/markdown/README.html

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,18 @@ <h3 id="production">Production</h3>
4040
<h3 id="configuration">Configuration</h3>
4141
<p>System configuration are stored in the <strong>locals.js</strong> file.</p>
4242
<h3 id="samples-page">Samples Page</h3>
43-
<p>Start the server and input <code>URL/samples</code> with browsers.</p>
43+
<p>Start the server and input <code>http://localhost:port/samples</code> with browsers.</p>
4444
<h2 id="gulp">Gulp</h2>
4545
<p>Show task list with <code>gulp help</code>.</p>
4646
<h2 id="test">Test</h2>
4747
<p>Test using karma and jasmine, run the test with <code>npm test</code> or <code>karma start</code>. Unit and coverage test report are stored in report directory.</p>
4848
<h2 id="changelog">Changelog</h2>
49+
<h3 id="2-2-0">2.2.0</h3>
50+
<ul>
51+
<li>add build-templates task to optimize ngTemplates that registers AngularJS templates in the $templateCache</li>
52+
<li>add error and listening event to server<br>
53+
17.01.2016</li>
54+
</ul>
4955
<h3 id="2-1-0">2.1.0</h3>
5056
<ul>
5157
<li>replace gulp-livereload with browser-sync</li>

views/mobile/render/layout.html

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
<link rel="stylesheet" href="/static/libs/bootstrap/dist/css/bootstrap.min.css">
1212
<link href="/static/libs/github-markdown-css/github-markdown.css" rel="stylesheet">
13-
<link rel="stylesheet" href="{= '/static/styles/desktop/style.css' | buildNumber =}"/>
13+
<link rel="stylesheet" href="{= '/static/styles/mobile/style.css' | buildNumber =}"/>
1414

1515
{% if styles %}
1616
{% for style in styles %}
@@ -43,6 +43,9 @@
4343
};
4444
}
4545

46+
{% if !isDevMode %}
47+
GlobalConfig.requireScripts.push('mobile/templates');
48+
{% endif %}
4649
{% if scripts %}
4750
{% for script in scripts %}
4851
GlobalConfig.requireScripts.push('{= script =}');
@@ -56,6 +59,7 @@
5659
<script src="/static/scripts/mobile/bootstrap.js"></script>
5760
{% else %}
5861
<script src="{= '/static/scripts/mobile/libs.min.js' | buildNumber =}"></script>
62+
<script src="{= '/static/scripts/mobile/templates.min.js' | buildNumber =}"></script>
5963
<script src="{= '/static/scripts/mobile/apps.min.js' | buildNumber =}"></script>
6064
{% endif %}
6165
</body>

0 commit comments

Comments
 (0)