From 2a1abea7b9551c5a4f64ce8918107a32ebd7a600 Mon Sep 17 00:00:00 2001 From: Anirvana Mishra Date: Wed, 10 Dec 2014 15:48:26 -0500 Subject: [PATCH 1/3] Add support for converting html templates to angular template cache without merging the output together and thus preserving the source directory structure in the output. --- tasks/angular-templates.js | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/tasks/angular-templates.js b/tasks/angular-templates.js index 783bd1b..c86eba6 100644 --- a/tasks/angular-templates.js +++ b/tasks/angular-templates.js @@ -31,7 +31,8 @@ module.exports = function(grunt) { url: function(path) { return path; }, usemin: null, append: false, - quotes: 'double' + quotes: 'double', + merge: true }); grunt.verbose.writeflags(options, 'Options'); @@ -50,7 +51,14 @@ module.exports = function(grunt) { var compiled = []; for (var module in modules) { - compiled.push(compiler.compile(module, modules[module])); + if (options.merge) { + compiled.push(compiler.compile(module, modules[module])); + } else { + //Compiling each file to the same module + for (var j = 0; j < file.src.length; j++) { + compiled.push(compiler.compile(module, [file.src[j]])); + } + } } if (options.append){ @@ -58,8 +66,19 @@ module.exports = function(grunt) { grunt.log.writeln('File ' + file.dest.cyan + ' updated.'); } else{ - grunt.file.write(file.dest, compiled.join('\n')); - grunt.log.writeln('File ' + file.dest.cyan + ' created.'); + if (options.merge) { + grunt.file.write(file.dest, compiled.join('\n')); + grunt.log.writeln('File ' + file.dest.cyan + ' created.'); + } else { + //Writing compiled file to the same relative location as source, without merging them together + for (var i = 0; i < compiled.length; i++) { + var dest = file.dest + file.src[i]; + //Change extension to js from html/htm + dest = dest.replace(/(html|htm)$/i, "js"); + grunt.file.write(dest, compiled[i]); + grunt.log.writeln('File ' + dest.cyan + ' created.'); + } + } } From 1653a29cf7238d74055c9288e7e865e79be17a14 Mon Sep 17 00:00:00 2001 From: Anirvana Mishra Date: Fri, 5 Aug 2016 22:34:17 -0500 Subject: [PATCH 2/3] Added test for the merge: false option --- Gruntfile.js | 8 ++++ test/angular-templates_test.js | 10 +++++ test/expected/unmerged_files/empty.js | 8 ++++ test/expected/unmerged_files/html5.js | 20 ++++++++++ test/expected/unmerged_files/one.js | 16 ++++++++ test/expected/unmerged_files/undefined.js | 16 ++++++++ test/expected/unmerged_files/usemin.js | 37 +++++++++++++++++++ test/fixtures/unmerged/level2/empty.html | 0 test/fixtures/unmerged/level2/html5.html | 13 +++++++ test/fixtures/unmerged/level2/level3/one.html | 9 +++++ test/fixtures/unmerged/undefined.html | 9 +++++ test/fixtures/unmerged/usemin.html | 30 +++++++++++++++ 12 files changed, 176 insertions(+) create mode 100644 test/expected/unmerged_files/empty.js create mode 100644 test/expected/unmerged_files/html5.js create mode 100644 test/expected/unmerged_files/one.js create mode 100644 test/expected/unmerged_files/undefined.js create mode 100644 test/expected/unmerged_files/usemin.js create mode 100644 test/fixtures/unmerged/level2/empty.html create mode 100644 test/fixtures/unmerged/level2/html5.html create mode 100644 test/fixtures/unmerged/level2/level3/one.html create mode 100644 test/fixtures/unmerged/undefined.html create mode 100644 test/fixtures/unmerged/usemin.html diff --git a/Gruntfile.js b/Gruntfile.js index 5dbdaa6..02b0787 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -297,6 +297,14 @@ module.exports = function(grunt) { dest: 'tmp/custom_concat_usemin_no_uglify.js', options: { usemin: 'usemin/all.js' + }, + + // bunch of files at different level in a directory (unmerged in dest) + unmerged_files: { + src: 'test/fixtures/unmerged/**/*.html', + dest: 'tmp/unmerged/', + options: { + merge: false } } } diff --git a/test/angular-templates_test.js b/test/angular-templates_test.js index 702c378..facf5b1 100644 --- a/test/angular-templates_test.js +++ b/test/angular-templates_test.js @@ -250,6 +250,16 @@ exports.ngtemplates = { var expected = grunt.file.read('test/expected/regexp.js'); test.equal(expected, actual); + }, + + unmerged_files: function(test) { + test.expect(5); + + test.equal(grunt.file.read('tmp/unmerged/test/fixtures/unmerged/undefined.js'), grunt.file.read('test/expected/unmerged_files/undefined.js')); + test.equal(grunt.file.read('tmp/unmerged/test/fixtures/unmerged/usemin.js'), grunt.file.read('test/expected/unmerged_files/usemin.js')); + test.equal(grunt.file.read('tmp/unmerged/test/fixtures/unmerged/level2/empty.js'), grunt.file.read('test/expected/unmerged_files/empty.js')); + test.equal(grunt.file.read('tmp/unmerged/test/fixtures/unmerged/level2/html5.js'), grunt.file.read('test/expected/unmerged_files/html5.js')); + test.equal(grunt.file.read('tmp/unmerged/test/fixtures/unmerged/level2/level3/one.js'), grunt.file.read('test/expected/unmerged_files/one.js')); test.done(); } diff --git a/test/expected/unmerged_files/empty.js b/test/expected/unmerged_files/empty.js new file mode 100644 index 0000000..4571c9c --- /dev/null +++ b/test/expected/unmerged_files/empty.js @@ -0,0 +1,8 @@ +angular.module('unmerged_files').run(['$templateCache', function($templateCache) { + 'use strict'; + + $templateCache.put('test/fixtures/unmerged/level2/empty.html', + "" + ); + +}]); diff --git a/test/expected/unmerged_files/html5.js b/test/expected/unmerged_files/html5.js new file mode 100644 index 0000000..84c3aaa --- /dev/null +++ b/test/expected/unmerged_files/html5.js @@ -0,0 +1,20 @@ +angular.module('unmerged_files').run(['$templateCache', function($templateCache) { + 'use strict'; + + $templateCache.put('test/fixtures/unmerged/level2/html5.html', + "
\n" + + " \n" + + " Self-closing, sucka!\n" + + "
\n" + + " Howdy\n" + + "
\n" + + "\n" + + "
\n" + + "\n" + + "\n" + + " \n" + + "
\n" + + " Howdy\n" + ); + +}]); diff --git a/test/expected/unmerged_files/one.js b/test/expected/unmerged_files/one.js new file mode 100644 index 0000000..c0adf1e --- /dev/null +++ b/test/expected/unmerged_files/one.js @@ -0,0 +1,16 @@ +angular.module('unmerged_files').run(['$templateCache', function($templateCache) { + 'use strict'; + + $templateCache.put('test/fixtures/unmerged/level2/level3/one.html', + "

One

\n" + + "\n" + + "

I am one.

\n" + + "\n" + + "\n" + ); + +}]); diff --git a/test/expected/unmerged_files/undefined.js b/test/expected/unmerged_files/undefined.js new file mode 100644 index 0000000..f35a601 --- /dev/null +++ b/test/expected/unmerged_files/undefined.js @@ -0,0 +1,16 @@ +angular.module('unmerged_files').run(['$templateCache', function($templateCache) { + 'use strict'; + + $templateCache.put('test/fixtures/unmerged/undefined.html', + "

Undefined

\n" + + "\n" + + "

I am undefined.

\n" + + "\n" + + "\n" + ); + +}]); diff --git a/test/expected/unmerged_files/usemin.js b/test/expected/unmerged_files/usemin.js new file mode 100644 index 0000000..de10318 --- /dev/null +++ b/test/expected/unmerged_files/usemin.js @@ -0,0 +1,37 @@ +angular.module('unmerged_files').run(['$templateCache', function($templateCache) { + 'use strict'; + + $templateCache.put('test/fixtures/unmerged/usemin.html', + "\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "\n" + + " \n" + + " \n" + + " \n" + + "\n" + + " \n" + + " \n" + + " \n" + + "\n" + + " \n" + + " \n" + + " \n" + + " \n" + + "\n" + + " \n" + + " \n" + + " \n" + + " \n" + + "\n" + + " \n" + + " \n" + + " \n" + + "\n" + + "\n" + ); + +}]); diff --git a/test/fixtures/unmerged/level2/empty.html b/test/fixtures/unmerged/level2/empty.html new file mode 100644 index 0000000..e69de29 diff --git a/test/fixtures/unmerged/level2/html5.html b/test/fixtures/unmerged/level2/html5.html new file mode 100644 index 0000000..577dc1d --- /dev/null +++ b/test/fixtures/unmerged/level2/html5.html @@ -0,0 +1,13 @@ +
+ + Self-closing, sucka! +
+ Howdy +
+ +
+ + + +
+ Howdy diff --git a/test/fixtures/unmerged/level2/level3/one.html b/test/fixtures/unmerged/level2/level3/one.html new file mode 100644 index 0000000..963f55a --- /dev/null +++ b/test/fixtures/unmerged/level2/level3/one.html @@ -0,0 +1,9 @@ +

One

+ +

I am one.

+ + diff --git a/test/fixtures/unmerged/undefined.html b/test/fixtures/unmerged/undefined.html new file mode 100644 index 0000000..0cb4499 --- /dev/null +++ b/test/fixtures/unmerged/undefined.html @@ -0,0 +1,9 @@ +

Undefined

+ +

I am undefined.

+ + diff --git a/test/fixtures/unmerged/usemin.html b/test/fixtures/unmerged/usemin.html new file mode 100644 index 0000000..fc53294 --- /dev/null +++ b/test/fixtures/unmerged/usemin.html @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 5178b5244f8def28617f53c6d2f1e3f5183d2a9b Mon Sep 17 00:00:00 2001 From: Anirvana Mishra Date: Sun, 7 Aug 2016 22:33:28 -0500 Subject: [PATCH 3/3] fix rebase errors --- Gruntfile.js | 1 + test/angular-templates_test.js | 1 + 2 files changed, 2 insertions(+) diff --git a/Gruntfile.js b/Gruntfile.js index 02b0787..746e4d1 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -297,6 +297,7 @@ module.exports = function(grunt) { dest: 'tmp/custom_concat_usemin_no_uglify.js', options: { usemin: 'usemin/all.js' + } }, // bunch of files at different level in a directory (unmerged in dest) diff --git a/test/angular-templates_test.js b/test/angular-templates_test.js index facf5b1..055a88b 100644 --- a/test/angular-templates_test.js +++ b/test/angular-templates_test.js @@ -250,6 +250,7 @@ exports.ngtemplates = { var expected = grunt.file.read('test/expected/regexp.js'); test.equal(expected, actual); + test.done(); }, unmerged_files: function(test) {