From 287e48609c9d81a51716ad55578912b6dc7cee71 Mon Sep 17 00:00:00 2001 From: Georgios Kalpakas Date: Fri, 17 Jun 2016 12:12:40 +0300 Subject: [PATCH 1/2] fix(index-async): fix inlining of `angular-loader` into `index-async.html` Previously, `angular-loader` was never inlined into `index-async.html`, because running `sed` with a multiline RegExp fails to match anything, since `sed` matches per line. Using the `fs` module directly, solves the issues. (Now, we no longer depend on `shelljs`.) Closes #309 --- package.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 81b7aaf285..2298f98410 100644 --- a/package.json +++ b/package.json @@ -14,8 +14,7 @@ "karma-firefox-launcher": "^0.1.7", "karma-jasmine": "^0.3.8", "karma-junit-reporter": "^0.4.1", - "protractor": "^3.2.2", - "shelljs": "^0.6.0" + "protractor": "^3.2.2" }, "scripts": { "postinstall": "bower install", @@ -33,6 +32,6 @@ "preprotractor": "npm run update-webdriver", "protractor": "protractor e2e-tests/protractor.conf.js", - "update-index-async": "node -e \"require('shelljs/global'); sed('-i', /\\/\\/@@NG_LOADER_START@@[\\s\\S]*\\/\\/@@NG_LOADER_END@@/, '//@@NG_LOADER_START@@\\n' + sed(/sourceMappingURL=angular-loader.min.js.map/,'sourceMappingURL=bower_components/angular-loader/angular-loader.min.js.map','app/bower_components/angular-loader/angular-loader.min.js') + '\\n//@@NG_LOADER_END@@', 'app/index-async.html');\"" + "update-index-async": "node -e \"var fs=require('fs'),indexFile='app/index-async.html',loaderFile='app/bower_components/angular-loader/angular-loader.min.js',loaderText=fs.readFileSync(loaderFile,'utf-8').replace(/sourceMappingURL=angular-loader.min.js.map/,'sourceMappingURL=bower_components/angular-loader/angular-loader.min.js.map'),indexText=fs.readFileSync(indexFile,'utf-8').replace(/\\/\\/@@NG_LOADER_START@@[\\s\\S]*\\/\\/@@NG_LOADER_END@@/,'//@@NG_LOADER_START@@\\n'+loaderText+' //@@NG_LOADER_END@@');fs.writeFileSync(indexFile,indexText);\"" } } From 4fc738b6abb5eca5f76ed104589c5f394a3ec67f Mon Sep 17 00:00:00 2001 From: Georgios Kalpakas Date: Fri, 17 Jun 2016 12:44:22 +0300 Subject: [PATCH 2/2] fix(index-async): properly inline text containing `$$` When using `'...'.replace(regex, replacement)`, any instances of `$$` inside `replacement` will be converted to `$` (see [mdn](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_string_as_a_parameter). Thus, for example `$$minErr` and `$$moduleName` are converted to `$minErr` and `$moduleName`. This commit fixes it, by first using `'...'.split(regex).join(replacement)` instead. Fixes #283 Closes #286 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2298f98410..95cc9d56fc 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,6 @@ "preprotractor": "npm run update-webdriver", "protractor": "protractor e2e-tests/protractor.conf.js", - "update-index-async": "node -e \"var fs=require('fs'),indexFile='app/index-async.html',loaderFile='app/bower_components/angular-loader/angular-loader.min.js',loaderText=fs.readFileSync(loaderFile,'utf-8').replace(/sourceMappingURL=angular-loader.min.js.map/,'sourceMappingURL=bower_components/angular-loader/angular-loader.min.js.map'),indexText=fs.readFileSync(indexFile,'utf-8').replace(/\\/\\/@@NG_LOADER_START@@[\\s\\S]*\\/\\/@@NG_LOADER_END@@/,'//@@NG_LOADER_START@@\\n'+loaderText+' //@@NG_LOADER_END@@');fs.writeFileSync(indexFile,indexText);\"" + "update-index-async": "node -e \"var fs=require('fs'),indexFile='app/index-async.html',loaderFile='app/bower_components/angular-loader/angular-loader.min.js',loaderText=fs.readFileSync(loaderFile,'utf-8').split(/sourceMappingURL=angular-loader.min.js.map/).join('sourceMappingURL=bower_components/angular-loader/angular-loader.min.js.map'),indexText=fs.readFileSync(indexFile,'utf-8').split(/\\/\\/@@NG_LOADER_START@@[\\s\\S]*\\/\\/@@NG_LOADER_END@@/).join('//@@NG_LOADER_START@@\\n'+loaderText+' //@@NG_LOADER_END@@');fs.writeFileSync(indexFile,indexText);\"" } }