From 0fa8fa461a160c2e602f6cedab4a48a9a8cf3821 Mon Sep 17 00:00:00 2001 From: sgb004 Date: Tue, 8 Mar 2022 21:40:22 -0600 Subject: [PATCH 01/54] Fix get img --- index.js | 142 ++++++++++++++++++++++++++++++++----------------- lib/partial.js | 13 +++-- 2 files changed, 100 insertions(+), 55 deletions(-) diff --git a/index.js b/index.js index e20053e..185ad97 100644 --- a/index.js +++ b/index.js @@ -9,62 +9,104 @@ const Util = require('./lib/util'); */ class HtmlWebpackPartialsPlugin { + static filesProcessed = []; constructor(settings = {}) { this.settings = settings; } apply(compiler) { - - compiler.hooks.compilation.tap('HtmlWebpackPartialsPlugin', compilation => { - - HtmlWebpackPlugin.getHooks(compilation).afterTemplateExecution.tapAsync('HtmlWebpackPartialsPlugin', (data, callback) => { - - // If the input isn't an array, add it as one to simplify the process - - if ( !Array.isArray(this.settings) ) { - this.settings = [ this.settings ]; - } - - const partial_collection = this.settings.map(partial => { - return new Partial(partial); - }).filter(partial => { - - // User option to conditionally inject snippet to allow for config based - // injection management. Additionally check to see if the partial template - // filename matches the current HTML Webpack Plugin instance. This defaults - // to index.html if not set - - return partial.should_inject && ( - partial.template_filename === data.plugin.options.filename || - Array.isArray(partial.template_filename) - ? partial.template_filename.includes(data.plugin.options.filename) - : partial.template_filename === '*' - ); - - }).forEach(partial => { - - // Once we know we're using the partial, read the file and create a template - - partial.createTemplate(); - - // Finally inject the partial into the HTML stream - - data.html = Util.injectPartial(data.html, { - options: partial.options, - html: partial.template(partial.options), - priority: partial.priority, - location: partial.location, - }); - - }); - - callback(null, data); - - }); - - }); - + const { webpack } = compiler; + const { Compilation } = webpack; + const { RawSource } = webpack.sources; + + // If the input isn't an array, add it as one to simplify the process + + if ( !Array.isArray(this.settings) ) { + this.settings = [ this.settings ]; + } + + this.partial_collection = this.settings.map(partial => { + return new Partial(partial); + }); + + // We treat the partial as a HtmlWebpackPlugin template so that html-loader can process the partial and get the assets (example imgs) + + this.partial_collection.forEach(partial => { + new HtmlWebpackPlugin({ + template: partial.path, + inject: false, + filename: partial.unique_name, + }).apply(compiler); + }); + + // Get list of files processed by HtmlWebpackPlugin + + compiler.hooks.compilation.tap('HtmlWebpackPartialsPlugin', compilation => { + HtmlWebpackPlugin.getHooks(compilation).beforeEmit.tapAsync('HtmlWebpackPartialsPlugin', (data, cb) => { + !HtmlWebpackPartialsPlugin.filesProcessed.includes(data.outputName) ? HtmlWebpackPartialsPlugin.filesProcessed.push(data.outputName) : ''; + cb(null, data); + }); + }); + + // Use this hook and this stage to ensure that all assets were already added to the compilation by other plugins + // and we can use to get htmls and put partial in them + + compiler.hooks.thisCompilation.tap('HtmlWebpackPartialsPlugin', (compilation) => { + compilation.hooks.processAssets.tap( + { + name: 'HtmlWebpackPartialsPlugin', + stage: Compilation.PROCESS_ASSETS_STAGE_SUMMARIZE, + }, + (assets) => { + this.partial_collection.forEach(partial => { + // Get list of files to add partial + let filesProcessed = partial.template_filename; + if(!Array.isArray(partial.template_filename)){ + if(filesProcessed == '*'){ + filesProcessed = HtmlWebpackPartialsPlugin.filesProcessed.filter(f => f != partial.unique_name); + }else{ + filesProcessed = [partial.template_filename]; + } + } + + filesProcessed.forEach( template_filename => { + //We get the html template where the partial will be injected + const dataHtml = compilation.getAsset(template_filename).source._value; + // Inject the partial into the HTML template + const html = Util.injectPartial(dataHtml, { + options: partial.options, + // We get the partial and transform it in a loash template to pass options + html: partial.createTemplate(compilation.getAsset(partial.unique_name).source._value), + priority: partial.priority, + location: partial.location, + }); + + compilation.updateAsset(template_filename, new RawSource(html)); + }); + }); + + }); + } + ); + + // With this hook we can delete the partial before webpack convert it in a html file, + // at this point the partial should have already been injected into the selected template + + compiler.hooks.thisCompilation.tap('HtmlWebpackPartialsPlugin', (compilation) => { + compilation.hooks.processAssets.tap( + { + name: 'HtmlWebpackPartialsPlugin', + stage: Compilation.PROCESS_ASSETS_STAGE_ANALYSE, + }, + (assets) => { + this.partial_collection.forEach(partial => { + compilation.deleteAsset(partial.unique_name); + }); + }); + } + ); + } } diff --git a/lib/partial.js b/lib/partial.js index 9d748a5..5bd1859 100644 --- a/lib/partial.js +++ b/lib/partial.js @@ -1,6 +1,7 @@ const fs = require('fs'); const path = require('path'); const _template = require('lodash/template'); +const { v4: uuidv4 } = require('uuid'); /** * Partial @@ -16,17 +17,19 @@ class Partial { this.should_inject = typeof settings.inject === 'undefined' ? true : !!(settings.inject); this.template_filename = settings.template_filename || 'index.html'; this.options = Object.assign({}, settings.options); + this.unique_name = uuidv4() + '.html'; //With html ext to html-loader } /** * createTemplate - * @description Reads the file path and transforms it into a loash template + * @param html String that receives the html to transform + * @description Reads the html and transforms it into a loash template */ - createTemplate() { - const file = fs.readFileSync(path.resolve(this.path), 'utf8'); - this.template = _template(file); - return this.template; + createTemplate(html) { + this.template = _template(html); + //Add options to template do magic + return this.template(this.options); } } From a975307cf2a577a409bfb651d8caaec2d929ea58 Mon Sep 17 00:00:00 2001 From: sgb004 Date: Tue, 8 Mar 2022 23:03:17 -0600 Subject: [PATCH 02/54] update dependencies --- package.json | 87 ++++++++++++++++++++++++++-------------------------- 1 file changed, 44 insertions(+), 43 deletions(-) diff --git a/package.json b/package.json index f94ce1a..6e19814 100644 --- a/package.json +++ b/package.json @@ -1,45 +1,46 @@ { - "name": "html-webpack-partials-plugin", - "version": "0.8.0", - "description": "Easily add partial support to the HTML Webpack Plugin", - "keywords": [ - "webpack", - "plugin", - "html", - "partial", - "template", - "html-webpack-plugin", - "html-webpack-partials-plugin" - ], - "main": "index.js", - "repository": "git@github.com:colbyfayock/html-webpack-partials-plugin.git", - "author": "Colby Fayock ", - "license": "MIT", - "scripts": { - "test": "mocha", - "bump": "npm version" - }, - "precommit": "yarn test", - "dependencies": { - "fs": "^0.0.1-security", - "lodash": "^4.17.20", - "path": "^0.12.7" - }, - "peerDependencies": { - "html-webpack-plugin": ">=4.3.0" - }, - "devDependencies": { - "@babel/core": "^7.11.4", - "@babel/preset-env": "^7.11.0", - "@babel/preset-react": "^7.10.4", - "babel-loader": "^8.1.0", - "chai": "^4.2.0", - "html-webpack-plugin": "^4.3.0", - "husky": "^4.2.5", - "mocha": "^8.1.1", - "react": "^16.13.1", - "react-dom": "^16.13.1", - "webpack": "^4.44.1", - "webpack-cli": "^3.3.12" - } + "name": "html-webpack-partials-plugin", + "version": "0.8.0", + "description": "Easily add partial support to the HTML Webpack Plugin", + "keywords": [ + "webpack", + "plugin", + "html", + "partial", + "template", + "html-webpack-plugin", + "html-webpack-partials-plugin" + ], + "main": "index.js", + "repository": "git@github.com:colbyfayock/html-webpack-partials-plugin.git", + "author": "Colby Fayock ", + "license": "MIT", + "scripts": { + "test": "mocha", + "bump": "npm version" + }, + "precommit": "yarn test", + "dependencies": { + "fs": "^0.0.1-security", + "lodash": "^4.17.21", + "path": "^0.12.7" + }, + "peerDependencies": { + "html-webpack-plugin": "^5.5.0" + }, + "devDependencies": { + "@babel/core": "^7.17.5", + "@babel/preset-env": "^7.16.11", + "@babel/preset-react": "^7.16.7", + "babel-loader": "^8.2.3", + "chai": "^4.3.6", + "html-webpack-plugin": "*", + "husky": "^7.0.4", + "mocha": "^9.2.1", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "uuid": "^8.3.2", + "webpack": "^5.70.0", + "webpack-cli": "^4.9.2" + } } From d0978dca517f27b57d517a0c5d8b3c6a8d3d508d Mon Sep 17 00:00:00 2001 From: sgb004 Date: Wed, 9 Mar 2022 13:44:16 -0600 Subject: [PATCH 03/54] Pass options to HTMLWebpackPlugin through templateParameters --- index.js | 1 + lib/partial.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 185ad97..8b448ad 100644 --- a/index.js +++ b/index.js @@ -37,6 +37,7 @@ class HtmlWebpackPartialsPlugin { template: partial.path, inject: false, filename: partial.unique_name, + templateParameters: partial.options }).apply(compiler); }); diff --git a/lib/partial.js b/lib/partial.js index 5bd1859..b461bab 100644 --- a/lib/partial.js +++ b/lib/partial.js @@ -28,7 +28,7 @@ class Partial { createTemplate(html) { this.template = _template(html); - //Add options to template do magic + //When using html-loader and HTMLWebpackPlugin it doesn't process the options so we send them again return this.template(this.options); } From 3a7bb3aa2f41252073ad503e9bf35d2ebd12c3e8 Mon Sep 17 00:00:00 2001 From: sgb004 Date: Wed, 9 Mar 2022 13:57:05 -0600 Subject: [PATCH 04/54] I change the way to get the index.html generated by webpack because result.compilation.assets['index.html'].source() no longer works --- test/analytics.test.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/analytics.test.js b/test/analytics.test.js index dd5e077..2c74c4f 100644 --- a/test/analytics.test.js +++ b/test/analytics.test.js @@ -1,3 +1,4 @@ +const { Console } = require('console'); const fs = require('fs'); const path = require('path'); const expect = require('chai').expect; @@ -12,7 +13,7 @@ describe('Analytics', function() { expect(error).to.equal(null); - const html = result.compilation.assets['index.html'].source(); + const html = fs.readFileSync(path.resolve(__dirname, '../examples/analytics/dist/index.html')).toString(); const fixture = fs.readFileSync(path.resolve(__dirname, 'fixtures/analytics.html')).toString(); expect(html).to.equal(fixture); From c33d23ac0a6594c2fc4559118ec60798834a7c83 Mon Sep 17 00:00:00 2001 From: sgb004 Date: Wed, 9 Mar 2022 14:04:24 -0600 Subject: [PATCH 05/54] I changed analytics.html because HTMLWebpackPlugin no longer puts scripts in the end of body, instead it puts the script in the end of head. I added the attr defer in the script tag because HTMLWebpackPlugin add that in the script tag now. I think that these changes do not affect the expected result . --- test/fixtures/analytics.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/fixtures/analytics.html b/test/fixtures/analytics.html index bf2d0bc..d8936f2 100644 --- a/test/fixtures/analytics.html +++ b/test/fixtures/analytics.html @@ -2,7 +2,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); -gtag('config', 'UA-28076707-7');Webpack App

Hello world!


webpack.config.js

+gtag('config', 'UA-28076707-7');Webpack App

Hello world!


webpack.config.js

 const path = require('path');
 const HtmlWebpackPlugin = require('html-webpack-plugin');
 const HtmlWebpackPartialsPlugin = require('../../');
@@ -48,4 +48,4 @@
 
 gtag('config', '<%= ga_property_id %>');
 </script>
-
\ No newline at end of file +
\ No newline at end of file From f11fffe5ce0954a681246afc0d55b2d3ee83eced Mon Sep 17 00:00:00 2001 From: sgb004 Date: Wed, 9 Mar 2022 14:12:00 -0600 Subject: [PATCH 06/54] These files change due to update of webpack and HTMLWebpackPlugin --- examples/analytics/dist/index.html | 4 ++-- examples/analytics/dist/main.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/analytics/dist/index.html b/examples/analytics/dist/index.html index bf2d0bc..d8936f2 100644 --- a/examples/analytics/dist/index.html +++ b/examples/analytics/dist/index.html @@ -2,7 +2,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); -gtag('config', 'UA-28076707-7');Webpack App

Hello world!


webpack.config.js

+gtag('config', 'UA-28076707-7');Webpack App

Hello world!


webpack.config.js

 const path = require('path');
 const HtmlWebpackPlugin = require('html-webpack-plugin');
 const HtmlWebpackPartialsPlugin = require('../../');
@@ -48,4 +48,4 @@
 
 gtag('config', '<%= ga_property_id %>');
 </script>
-
\ No newline at end of file +
\ No newline at end of file diff --git a/examples/analytics/dist/main.js b/examples/analytics/dist/main.js index a5093ab..6f1c74d 100644 --- a/examples/analytics/dist/main.js +++ b/examples/analytics/dist/main.js @@ -1 +1 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t){console.log("Test!")}]); \ No newline at end of file +console.log("Test!"); \ No newline at end of file From 96b83966bc53ddc3460e862d4d845cf0e1c0cf8e Mon Sep 17 00:00:00 2001 From: sgb004 Date: Wed, 9 Mar 2022 15:01:10 -0600 Subject: [PATCH 07/54] I change the way to get the index.html and other-page.html generated by webpack because result.compilation.assets['index.html'].source() and result.compilation.assets['other-page.html'].source() no longer works --- test/basic-multi.test.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/basic-multi.test.js b/test/basic-multi.test.js index 5d0e441..a0e9a3a 100644 --- a/test/basic-multi.test.js +++ b/test/basic-multi.test.js @@ -12,12 +12,12 @@ describe('Basic Multi', function() { expect(error).to.equal(null); - const index_html = result.compilation.assets['index.html'].source(); + const index_html = fs.readFileSync(path.resolve(__dirname, '../examples/basic-multi/dist/index.html')).toString(); const index_fixture = fs.readFileSync(path.resolve(__dirname, 'fixtures/basic-multi-index.html')).toString(); expect(index_html).to.equal(index_fixture); - - const other_html = result.compilation.assets['other-page.html'].source(); + + const other_html = fs.readFileSync(path.resolve(__dirname, '../examples/basic-multi/dist/other-page.html')).toString(); const other_fixture = fs.readFileSync(path.resolve(__dirname, 'fixtures/basic-multi-other.html')).toString(); expect(other_html).to.equal(other_fixture); From e18ac261548e71f31123d3154436f30771090e2d Mon Sep 17 00:00:00 2001 From: sgb004 Date: Wed, 9 Mar 2022 15:03:20 -0600 Subject: [PATCH 08/54] I changed basic-multi-index.html and basic-multi-other.html because HTMLWebpackPlugin no longer puts scripts in the end of body, instead it puts the script in the end of head. I added the attr defer in the script tag because HTMLWebpackPlugin add that in the script tag now. I think that these changes do not affect the expected result. --- test/fixtures/basic-multi-index.html | 4 ++-- test/fixtures/basic-multi-other.html | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/fixtures/basic-multi-index.html b/test/fixtures/basic-multi-index.html index 3268c1e..8505152 100644 --- a/test/fixtures/basic-multi-index.html +++ b/test/fixtures/basic-multi-index.html @@ -1,4 +1,4 @@ -Webpack App

Hello world!

Other Page

webpack.config.js

+Webpack App

Hello world!

Other Page

webpack.config.js

 const path = require('path');
 const HtmlWebpackPlugin = require('html-webpack-plugin');
 const HtmlWebpackPartialsPlugin = require('../../');
@@ -42,4 +42,4 @@
 ...and the rest of this configuration example
 

partials/other-body.html

 <h1>Hello other world!</h1>
-
\ No newline at end of file +
\ No newline at end of file diff --git a/test/fixtures/basic-multi-other.html b/test/fixtures/basic-multi-other.html index 5132c6d..9b124ab 100644 --- a/test/fixtures/basic-multi-other.html +++ b/test/fixtures/basic-multi-other.html @@ -1 +1 @@ -

Hello other world!

\ No newline at end of file +

Hello other world!

\ No newline at end of file From 7193f397e4a7b12600f20fd29ea2b353d8655200 Mon Sep 17 00:00:00 2001 From: sgb004 Date: Wed, 9 Mar 2022 15:06:55 -0600 Subject: [PATCH 09/54] These files change due to update of webpack and HTMLWebpackPlugin --- examples/basic-multi/dist/index.html | 4 ++-- examples/basic-multi/dist/main.js | 2 +- examples/basic-multi/dist/other-page.html | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/basic-multi/dist/index.html b/examples/basic-multi/dist/index.html index 3268c1e..8505152 100644 --- a/examples/basic-multi/dist/index.html +++ b/examples/basic-multi/dist/index.html @@ -1,4 +1,4 @@ -Webpack App

Hello world!

Other Page

webpack.config.js

+Webpack App

Hello world!

Other Page

webpack.config.js

 const path = require('path');
 const HtmlWebpackPlugin = require('html-webpack-plugin');
 const HtmlWebpackPartialsPlugin = require('../../');
@@ -42,4 +42,4 @@
 ...and the rest of this configuration example
 

partials/other-body.html

 <h1>Hello other world!</h1>
-
\ No newline at end of file +
\ No newline at end of file diff --git a/examples/basic-multi/dist/main.js b/examples/basic-multi/dist/main.js index a5093ab..6f1c74d 100644 --- a/examples/basic-multi/dist/main.js +++ b/examples/basic-multi/dist/main.js @@ -1 +1 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t){console.log("Test!")}]); \ No newline at end of file +console.log("Test!"); \ No newline at end of file diff --git a/examples/basic-multi/dist/other-page.html b/examples/basic-multi/dist/other-page.html index 5132c6d..9b124ab 100644 --- a/examples/basic-multi/dist/other-page.html +++ b/examples/basic-multi/dist/other-page.html @@ -1 +1 @@ -

Hello other world!

\ No newline at end of file +

Hello other world!

\ No newline at end of file From 057b8b90ca7366270001aaba4d01ef2f4114c5e9 Mon Sep 17 00:00:00 2001 From: sgb004 Date: Wed, 9 Mar 2022 15:15:09 -0600 Subject: [PATCH 10/54] I change the way to get the index.html generated by webpack because result.compilation.assets['index.html'].source() no longer works --- test/basic.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/basic.test.js b/test/basic.test.js index 994ce20..0081234 100644 --- a/test/basic.test.js +++ b/test/basic.test.js @@ -12,7 +12,7 @@ describe('Basic', function() { expect(error).to.equal(null); - const html = result.compilation.assets['index.html'].source(); + const html = fs.readFileSync(path.resolve(__dirname, '../examples/basic/dist/index.html')).toString(); const fixture = fs.readFileSync(path.resolve(__dirname, 'fixtures/basic.html')).toString(); expect(html).to.equal(fixture); From 2da36a7ddbb6f388e8c09691a0cc07dcbaacbb21 Mon Sep 17 00:00:00 2001 From: sgb004 Date: Wed, 9 Mar 2022 15:15:59 -0600 Subject: [PATCH 11/54] I changed basic.html because HTMLWebpackPlugin no longer puts scripts in the end of body, instead it puts the script in the end of head. I added the attr defer in the script tag because HTMLWebpackPlugin add that in the script tag now. I think that these changes do not affect the expected result. --- test/fixtures/basic.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/fixtures/basic.html b/test/fixtures/basic.html index 73272cf..e7ec536 100644 --- a/test/fixtures/basic.html +++ b/test/fixtures/basic.html @@ -1,4 +1,4 @@ -Webpack App

Hello world!


webpack.config.js

+Webpack App

Hello world!


webpack.config.js

 const path = require('path');
 const HtmlWebpackPlugin = require('html-webpack-plugin');
 const HtmlWebpackPartialsPlugin = require('../../');
@@ -23,4 +23,4 @@
 

partials/body.html

 <h1>Hello world!</h1>
 ...and the rest of this configuration example
-
\ No newline at end of file +
\ No newline at end of file From 401615c4f5554bca6ec8321f526523be9c6f6ef0 Mon Sep 17 00:00:00 2001 From: sgb004 Date: Wed, 9 Mar 2022 15:16:42 -0600 Subject: [PATCH 12/54] These files change due to update of webpack and HTMLWebpackPlugin --- examples/basic/dist/index.html | 4 ++-- examples/basic/dist/main.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/basic/dist/index.html b/examples/basic/dist/index.html index 73272cf..e7ec536 100644 --- a/examples/basic/dist/index.html +++ b/examples/basic/dist/index.html @@ -1,4 +1,4 @@ -Webpack App

Hello world!


webpack.config.js

+Webpack App

Hello world!


webpack.config.js

 const path = require('path');
 const HtmlWebpackPlugin = require('html-webpack-plugin');
 const HtmlWebpackPartialsPlugin = require('../../');
@@ -23,4 +23,4 @@
 

partials/body.html

 <h1>Hello world!</h1>
 ...and the rest of this configuration example
-
\ No newline at end of file +
\ No newline at end of file diff --git a/examples/basic/dist/main.js b/examples/basic/dist/main.js index a5093ab..6f1c74d 100644 --- a/examples/basic/dist/main.js +++ b/examples/basic/dist/main.js @@ -1 +1 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t){console.log("Test!")}]); \ No newline at end of file +console.log("Test!"); \ No newline at end of file From b34471080bf3411aa45b37a6f6acdfb596b2386d Mon Sep 17 00:00:00 2001 From: sgb004 Date: Wed, 9 Mar 2022 15:25:46 -0600 Subject: [PATCH 13/54] I changed the way to get the index.html generated by webpack because result.compilation.assets['index.html'].source() no longer works --- test/body-attribute.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/body-attribute.test.js b/test/body-attribute.test.js index ccd1883..8ffd2d1 100644 --- a/test/body-attribute.test.js +++ b/test/body-attribute.test.js @@ -12,7 +12,7 @@ describe('Body Attribute', function() { expect(error).to.equal(null); - const html = result.compilation.assets['index.html'].source(); + const html = fs.readFileSync(path.resolve(__dirname, '../examples/body-attribute/dist/index.html')).toString(); const fixture = fs.readFileSync(path.resolve(__dirname, 'fixtures/body-attribute.html')).toString(); expect(html).to.equal(fixture); From a7bcb23bef3fa6c98017a47cc146018ee8c1070e Mon Sep 17 00:00:00 2001 From: sgb004 Date: Wed, 9 Mar 2022 15:26:39 -0600 Subject: [PATCH 14/54] I changed body-attribute.html because HTMLWebpackPlugin no longer puts scripts in the end of body, instead it puts the script in the end of head. I added the attr defer in the script tag because HTMLWebpackPlugin add that in the script tag now. I think that these changes do not affect the expected result. --- test/fixtures/body-attribute.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/fixtures/body-attribute.html b/test/fixtures/body-attribute.html index 5d531da..7976d49 100644 --- a/test/fixtures/body-attribute.html +++ b/test/fixtures/body-attribute.html @@ -1,4 +1,4 @@ -Custom Webpack Template

Hello world!


webpack.config.js

+Custom Webpack Template

Hello world!


webpack.config.js

 const path = require('path');
 const HtmlWebpackPlugin = require('html-webpack-plugin');
 const HtmlWebpackPartialsPlugin = require('../../');
@@ -30,4 +30,4 @@
 

partials/body.html

 <h1>Hello world!</h1>
 ...and the rest of this configuration example
-
\ No newline at end of file +
\ No newline at end of file From 541b7286b78f3957206036ae76277f3ad8da4240 Mon Sep 17 00:00:00 2001 From: sgb004 Date: Wed, 9 Mar 2022 15:27:10 -0600 Subject: [PATCH 15/54] These files change due to update of webpack and HTMLWebpackPlugin --- examples/body-attribute/dist/index.html | 4 ++-- examples/body-attribute/dist/main.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/body-attribute/dist/index.html b/examples/body-attribute/dist/index.html index 5d531da..7976d49 100644 --- a/examples/body-attribute/dist/index.html +++ b/examples/body-attribute/dist/index.html @@ -1,4 +1,4 @@ -Custom Webpack Template

Hello world!


webpack.config.js

+Custom Webpack Template

Hello world!


webpack.config.js

 const path = require('path');
 const HtmlWebpackPlugin = require('html-webpack-plugin');
 const HtmlWebpackPartialsPlugin = require('../../');
@@ -30,4 +30,4 @@
 

partials/body.html

 <h1>Hello world!</h1>
 ...and the rest of this configuration example
-
\ No newline at end of file +
\ No newline at end of file diff --git a/examples/body-attribute/dist/main.js b/examples/body-attribute/dist/main.js index a5093ab..6f1c74d 100644 --- a/examples/body-attribute/dist/main.js +++ b/examples/body-attribute/dist/main.js @@ -1 +1 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t){console.log("Test!")}]); \ No newline at end of file +console.log("Test!"); \ No newline at end of file From 8b08f51388ec7da60fa8f7b66877141950436afe Mon Sep 17 00:00:00 2001 From: sgb004 Date: Wed, 9 Mar 2022 15:36:07 -0600 Subject: [PATCH 16/54] I changed the way to get the index.html generated by webpack because result.compilation.assets['index.html'].source() and result.compilation.assets['other-page.html'].source() no longer works --- ...ate-filename.js => custom-multi-template-filename.test.js} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename test/{custom-multi-template-filename.js => custom-multi-template-filename.test.js} (75%) diff --git a/test/custom-multi-template-filename.js b/test/custom-multi-template-filename.test.js similarity index 75% rename from test/custom-multi-template-filename.js rename to test/custom-multi-template-filename.test.js index deda8f4..6cb7fd5 100644 --- a/test/custom-multi-template-filename.js +++ b/test/custom-multi-template-filename.test.js @@ -12,11 +12,11 @@ describe('Custom Multi template_filename', function() { expect(error).to.equal(null); - const index_html = result.compilation.assets['index.html'].source(); + const index_html = fs.readFileSync(path.resolve(__dirname, '../examples/custom-multi-template-filename/dist/index.html')).toString(); const index_fixture = fs.readFileSync(path.resolve(__dirname, 'fixtures/custom-multi-template-filename-index.html')).toString(); expect(index_html).to.equal(index_fixture); - const other_html = result.compilation.assets['other-page.html'].source(); + const other_html = fs.readFileSync(path.resolve(__dirname, '../examples/custom-multi-template-filename/dist/other-page.html')).toString(); const other_fixture = fs.readFileSync(path.resolve(__dirname, 'fixtures/custom-multi-template-filename-other.html')).toString(); expect(other_html).to.equal(other_fixture); From 38824e3698e7d18529199419842c0dd89b51a455 Mon Sep 17 00:00:00 2001 From: sgb004 Date: Wed, 9 Mar 2022 15:37:16 -0600 Subject: [PATCH 17/54] I changed custom-multi-template-filename-index.html and custom-multi-template-filename-other.html because HTMLWebpackPlugin no longer puts scripts in the end of body, instead it puts the script in the end of head. I added the attr defer in the script tag because HTMLWebpackPlugin add that in the script tag now. I think that these changes do not affect the expected result. --- test/fixtures/custom-multi-template-filename-index.html | 2 +- test/fixtures/custom-multi-template-filename-other.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/fixtures/custom-multi-template-filename-index.html b/test/fixtures/custom-multi-template-filename-index.html index 149db1c..af3b20e 100644 --- a/test/fixtures/custom-multi-template-filename-index.html +++ b/test/fixtures/custom-multi-template-filename-index.html @@ -1 +1 @@ -Webpack App

Hello mad world!

\ No newline at end of file +Webpack App

Hello mad world!

\ No newline at end of file diff --git a/test/fixtures/custom-multi-template-filename-other.html b/test/fixtures/custom-multi-template-filename-other.html index caf2178..a172ccb 100644 --- a/test/fixtures/custom-multi-template-filename-other.html +++ b/test/fixtures/custom-multi-template-filename-other.html @@ -1 +1 @@ -

Hello mad world!

\ No newline at end of file +

Hello mad world!

\ No newline at end of file From 70427e6e0c976d17f4cc9f6d145d3480e61b03d9 Mon Sep 17 00:00:00 2001 From: sgb004 Date: Wed, 9 Mar 2022 15:38:03 -0600 Subject: [PATCH 18/54] These files change due to update of webpack and HTMLWebpackPlugin --- examples/custom-multi-template-filename/dist/index.html | 2 +- examples/custom-multi-template-filename/dist/main.js | 2 +- examples/custom-multi-template-filename/dist/other-page.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/custom-multi-template-filename/dist/index.html b/examples/custom-multi-template-filename/dist/index.html index 149db1c..af3b20e 100644 --- a/examples/custom-multi-template-filename/dist/index.html +++ b/examples/custom-multi-template-filename/dist/index.html @@ -1 +1 @@ -Webpack App

Hello mad world!

\ No newline at end of file +Webpack App

Hello mad world!

\ No newline at end of file diff --git a/examples/custom-multi-template-filename/dist/main.js b/examples/custom-multi-template-filename/dist/main.js index a5093ab..6f1c74d 100644 --- a/examples/custom-multi-template-filename/dist/main.js +++ b/examples/custom-multi-template-filename/dist/main.js @@ -1 +1 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t){console.log("Test!")}]); \ No newline at end of file +console.log("Test!"); \ No newline at end of file diff --git a/examples/custom-multi-template-filename/dist/other-page.html b/examples/custom-multi-template-filename/dist/other-page.html index caf2178..a172ccb 100644 --- a/examples/custom-multi-template-filename/dist/other-page.html +++ b/examples/custom-multi-template-filename/dist/other-page.html @@ -1 +1 @@ -

Hello mad world!

\ No newline at end of file +

Hello mad world!

\ No newline at end of file From a9320ef531e5709c0a1c0173ffe9f525ef6cbb3a Mon Sep 17 00:00:00 2001 From: sgb004 Date: Thu, 10 Mar 2022 13:05:28 -0600 Subject: [PATCH 19/54] I changed the way to get the index.html generated by webpack because result.compilation.assets['index.html'].source() no longer works --- test/high-priority-head-no-meta.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/high-priority-head-no-meta.test.js b/test/high-priority-head-no-meta.test.js index 6f9f48b..133197e 100644 --- a/test/high-priority-head-no-meta.test.js +++ b/test/high-priority-head-no-meta.test.js @@ -12,7 +12,7 @@ describe('High Priority Head with No Meta', function() { expect(error).to.equal(null); - const html = result.compilation.assets['index.html'].source(); + const html = fs.readFileSync(path.resolve(__dirname, '../examples/high-priority-head-no-meta/dist/index.html')).toString(); const fixture = fs.readFileSync(path.resolve(__dirname, 'fixtures/high-priority-head-no-meta.html')).toString(); expect(html).to.equal(fixture); From 1d85f9b4b09cabd3587b79f817b2a80d0be21f26 Mon Sep 17 00:00:00 2001 From: sgb004 Date: Thu, 10 Mar 2022 13:08:34 -0600 Subject: [PATCH 20/54] I changed high-priority-head-no-meta.html because HTMLWebpackPlugin no longer puts scripts in the end of body, instead it puts the script in the end of head. I added the attr defer in the script tag because HTMLWebpackPlugin add that in the script tag now. I think that these changes do not affect the expected result. --- test/fixtures/high-priority-head-no-meta.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/fixtures/high-priority-head-no-meta.html b/test/fixtures/high-priority-head-no-meta.html index c9f1062..dd71f6b 100644 --- a/test/fixtures/high-priority-head-no-meta.html +++ b/test/fixtures/high-priority-head-no-meta.html @@ -1,7 +1,7 @@ Custom Webpack Template
HTMLHeadElement

Hello world!


webpack.config.js

+}Custom Webpack Template
HTMLHeadElement

Hello world!


webpack.config.js

 const path = require('path');
 const HtmlWebpackPlugin = require('html-webpack-plugin');
 const HtmlWebpackPartialsPlugin = require('../../');
@@ -35,4 +35,4 @@
 

partials/body.html

 <h1>Hello world!</h1>
 ...and the rest of this configuration example
-
\ No newline at end of file +
\ No newline at end of file From 36a825040567676598b67ca39c3738f3fa469ca7 Mon Sep 17 00:00:00 2001 From: sgb004 Date: Thu, 10 Mar 2022 13:11:09 -0600 Subject: [PATCH 21/54] These files change due to update of webpack and HTMLWebpackPlugin --- examples/high-priority-head-no-meta/dist/index.html | 4 ++-- examples/high-priority-head-no-meta/dist/main.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/high-priority-head-no-meta/dist/index.html b/examples/high-priority-head-no-meta/dist/index.html index c9f1062..dd71f6b 100644 --- a/examples/high-priority-head-no-meta/dist/index.html +++ b/examples/high-priority-head-no-meta/dist/index.html @@ -1,7 +1,7 @@ Custom Webpack Template
HTMLHeadElement

Hello world!


webpack.config.js

+}Custom Webpack Template
HTMLHeadElement

Hello world!


webpack.config.js

 const path = require('path');
 const HtmlWebpackPlugin = require('html-webpack-plugin');
 const HtmlWebpackPartialsPlugin = require('../../');
@@ -35,4 +35,4 @@
 

partials/body.html

 <h1>Hello world!</h1>
 ...and the rest of this configuration example
-
\ No newline at end of file +
\ No newline at end of file diff --git a/examples/high-priority-head-no-meta/dist/main.js b/examples/high-priority-head-no-meta/dist/main.js index a5093ab..6f1c74d 100644 --- a/examples/high-priority-head-no-meta/dist/main.js +++ b/examples/high-priority-head-no-meta/dist/main.js @@ -1 +1 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t){console.log("Test!")}]); \ No newline at end of file +console.log("Test!"); \ No newline at end of file From c5f00f18e4fd66822e8c693d74ae6eed321511ae Mon Sep 17 00:00:00 2001 From: sgb004 Date: Thu, 10 Mar 2022 13:19:10 -0600 Subject: [PATCH 22/54] I changed the way to get the index.html generated by webpack because result.compilation.assets['index.html'].source() no longer works --- test/high-priority-head.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/high-priority-head.test.js b/test/high-priority-head.test.js index 0238df6..5d926ec 100644 --- a/test/high-priority-head.test.js +++ b/test/high-priority-head.test.js @@ -12,7 +12,7 @@ describe('High Priority Head', function() { expect(error).to.equal(null); - const html = result.compilation.assets['index.html'].source(); + const html = fs.readFileSync(path.resolve(__dirname, '../examples/high-priority-head/dist/index.html')).toString(); const fixture = fs.readFileSync(path.resolve(__dirname, 'fixtures/high-priority-head.html')).toString(); expect(html).to.equal(fixture); From 1f188347f4aa05304f40e218314888dc478c3cd1 Mon Sep 17 00:00:00 2001 From: sgb004 Date: Thu, 10 Mar 2022 13:20:58 -0600 Subject: [PATCH 23/54] I changed high-priority-head.html because HTMLWebpackPlugin no longer puts scripts in the end of body, instead it puts the script in the end of head. I added the attr defer in the script tag because HTMLWebpackPlugin add that in the script tag now. I think that these changes do not affect the expected result. --- test/fixtures/high-priority-head.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/fixtures/high-priority-head.html b/test/fixtures/high-priority-head.html index fc685c1..5d8c75b 100644 --- a/test/fixtures/high-priority-head.html +++ b/test/fixtures/high-priority-head.html @@ -1,7 +1,7 @@ Webpack App

Hello world!


webpack.config.js

+}Webpack App

Hello world!


webpack.config.js

 const path = require('path');
 const HtmlWebpackPlugin = require('html-webpack-plugin');
 const HtmlWebpackPartialsPlugin = require('html-webpack-partials-plugin');
@@ -38,4 +38,4 @@
   background-color: #5F4B8B;
 }
 </style>
-
\ No newline at end of file +
\ No newline at end of file From 3d149a96dbc20f7fde9fa5d9d1a93e07e0bc5ee4 Mon Sep 17 00:00:00 2001 From: sgb004 Date: Thu, 10 Mar 2022 13:22:09 -0600 Subject: [PATCH 24/54] These files change due to update of webpack and HTMLWebpackPlugin --- examples/high-priority-head/dist/index.html | 4 ++-- examples/high-priority-head/dist/main.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/high-priority-head/dist/index.html b/examples/high-priority-head/dist/index.html index fc685c1..5d8c75b 100644 --- a/examples/high-priority-head/dist/index.html +++ b/examples/high-priority-head/dist/index.html @@ -1,7 +1,7 @@ Webpack App

Hello world!


webpack.config.js

+}Webpack App

Hello world!


webpack.config.js

 const path = require('path');
 const HtmlWebpackPlugin = require('html-webpack-plugin');
 const HtmlWebpackPartialsPlugin = require('html-webpack-partials-plugin');
@@ -38,4 +38,4 @@
   background-color: #5F4B8B;
 }
 </style>
-
\ No newline at end of file +
\ No newline at end of file diff --git a/examples/high-priority-head/dist/main.js b/examples/high-priority-head/dist/main.js index a5093ab..6f1c74d 100644 --- a/examples/high-priority-head/dist/main.js +++ b/examples/high-priority-head/dist/main.js @@ -1 +1 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t){console.log("Test!")}]); \ No newline at end of file +console.log("Test!"); \ No newline at end of file From 482fad02646d395e576b0dc76afbea5c95c30d8e Mon Sep 17 00:00:00 2001 From: sgb004 Date: Thu, 10 Mar 2022 14:22:22 -0600 Subject: [PATCH 25/54] html-loader added to package.json --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 6e19814..d1acbb5 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "author": "Colby Fayock ", "license": "MIT", "scripts": { - "test": "mocha", + "test": "clear && mocha -g \"Minify\" --timeout 10000", "bump": "npm version" }, "precommit": "yarn test", @@ -34,6 +34,7 @@ "@babel/preset-react": "^7.16.7", "babel-loader": "^8.2.3", "chai": "^4.3.6", + "html-loader": "^3.1.0", "html-webpack-plugin": "*", "husky": "^7.0.4", "mocha": "^9.2.1", From f2e55a88c750dc0d87f8af2900e22e9c00b32fc5 Mon Sep 17 00:00:00 2001 From: sgb004 Date: Thu, 10 Mar 2022 15:55:24 -0600 Subject: [PATCH 26/54] Updated settings to fetch images using html-loader with the changes applied to the plugin and to adapt to the latest version of webpack and HTMLWebpack --- examples/html-loader/webpack.config.js | 28 +++++++++++--------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/examples/html-loader/webpack.config.js b/examples/html-loader/webpack.config.js index 9df2554..89af1ee 100644 --- a/examples/html-loader/webpack.config.js +++ b/examples/html-loader/webpack.config.js @@ -8,11 +8,12 @@ module.exports = { }, output: { path: path.join(__dirname, './dist'), - filename: '[name].js' + filename: '[name].js', + assetModuleFilename: 'images/[name][ext]', }, plugins: [ new HtmlWebpackPlugin({ - // template: path.join(__dirname, './wrapper.html') + template: path.join(__dirname, './wrapper.html') }), new HtmlWebpackPartialsPlugin({ path: path.join(__dirname, './partials/body.html') @@ -25,22 +26,17 @@ module.exports = { use: { loader: 'html-loader', options: { - attrs: ['img:src', ':srcset'], - interpolate: require, - minimize: true - }, - } - }, - { - test: /\.(gif|png|jpe?g|svg)$/i, - use: [ - { - loader: 'file-loader', - options: { - name: '[path][name].[ext]' + sources: { + list: [ + { + tag: 'img', + attribute: 'src', + type: 'src', + } + ] } } - ] + } } ] } From e1623c22208706044e9d2c1ecc069d9dbf8c6caf Mon Sep 17 00:00:00 2001 From: sgb004 Date: Thu, 10 Mar 2022 15:57:18 -0600 Subject: [PATCH 27/54] Documentation update for the html-loader example --- examples/html-loader/partials/body.html | 83 ++++++++++++++++++++++--- examples/html-loader/wrapper.html | 17 ++++- 2 files changed, 92 insertions(+), 8 deletions(-) diff --git a/examples/html-loader/partials/body.html b/examples/html-loader/partials/body.html index 3489b58..376289b 100644 --- a/examples/html-loader/partials/body.html +++ b/examples/html-loader/partials/body.html @@ -1,13 +1,14 @@ -

Hello world!

- -

webpack.config.js

+

Image in partial

+
+ +

webpack.config.js

 const path = require('path');
 const HtmlWebpackPlugin = require('html-webpack-plugin');
-const HtmlWebpackPartialsPlugin = require('html-webpack-partials-plugin');
+const HtmlWebpackPartialsPlugin = require('../../');
 
 module.exports = {
   entry: {
@@ -15,13 +16,81 @@ 

webpack.config.js

}, output: { path: path.join(__dirname, './dist'), - filename: '[name].js' + filename: '[name].js', + assetModuleFilename: 'images/[name][ext]', }, plugins: [ - new HtmlWebpackPlugin(), + new HtmlWebpackPlugin({ + template: path.join(__dirname, './wrapper.html') + }), new HtmlWebpackPartialsPlugin({ path: path.join(__dirname, './partials/body.html') }) - ] + ], + module: { + rules: [ + { + test: /\.(html)$/, + use: { + loader: 'html-loader', + options: { + sources: { + list: [ + { + tag: 'img', + attribute: 'src', + type: 'src', + } + ] + } + } + } + } + ] + } }; +
+ +

main.js

+
+console.log('Test!');
+
+ +

wrapper.html

+
+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8">
+</head>
+<style>
+  img{
+    max-width: 320px;
+    height: auto;
+  }
+</style>
+<body>
+<h1>Hello world!</h1>
+
+<hr />
+
+<h2>Image in template</h2>
+
+<img src="./images/html5.png" />
+
+<hr />
+  
+</body>
+</html>
+
+ +

partials/body.html

+
+<h2>Image in partial</h2>
+
+<img src="../images/webpack.png" />
+
+<hr />
+
+...and the rest of this configuration example
 
\ No newline at end of file diff --git a/examples/html-loader/wrapper.html b/examples/html-loader/wrapper.html index 5bd6bf9..2252de8 100644 --- a/examples/html-loader/wrapper.html +++ b/examples/html-loader/wrapper.html @@ -3,7 +3,22 @@ + - +

Hello world!

+ +
+ +

Image in template

+ + + +
+ \ No newline at end of file From cebfdfea2e1b56bd1e76e21b48ee8c51df17bf28 Mon Sep 17 00:00:00 2001 From: sgb004 Date: Thu, 10 Mar 2022 15:58:50 -0600 Subject: [PATCH 28/54] These files change due to update of the plugin, the webpack and HTMLWebpackPlugin --- examples/html-loader/dist/images/html5.png | Bin 0 -> 38686 bytes examples/html-loader/dist/images/webpack.png | Bin 0 -> 144654 bytes examples/html-loader/dist/index.html | 71 +++++++++++++++++-- examples/html-loader/dist/main.js | 2 +- examples/html-loader/dist/partial.html | 21 ------ 5 files changed, 66 insertions(+), 28 deletions(-) create mode 100644 examples/html-loader/dist/images/html5.png create mode 100644 examples/html-loader/dist/images/webpack.png delete mode 100644 examples/html-loader/dist/partial.html diff --git a/examples/html-loader/dist/images/html5.png b/examples/html-loader/dist/images/html5.png new file mode 100644 index 0000000000000000000000000000000000000000..cdd959b6d66dd363a56a3ca28cae3983b38318ab GIT binary patch literal 38686 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

Da5(x7_WL>i*VFv~x2c8n8M|7-{f2;x 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 App

Hello world!

webpack.config.js

+

Hello world!


Image in template


Image in partial


webpack.config.js

 const path = require('path');
 const HtmlWebpackPlugin = require('html-webpack-plugin');
-const HtmlWebpackPartialsPlugin = require('html-webpack-partials-plugin');
+const HtmlWebpackPartialsPlugin = require('../../');
 
 module.exports = {
   entry: {
@@ -9,13 +9,72 @@
   },
   output: {
     path: path.join(__dirname, './dist'),
-    filename: '[name].js'
+    filename: '[name].js',
+    assetModuleFilename: 'images/[name][ext]',
   },
   plugins: [
-    new HtmlWebpackPlugin(),
+    new HtmlWebpackPlugin({
+      template: path.join(__dirname, './wrapper.html')
+    }),
     new HtmlWebpackPartialsPlugin({
       path: path.join(__dirname, './partials/body.html')
     })
-  ]
+  ],
+  module: {
+    rules: [
+      {
+        test: /\.(html)$/,
+        use: {
+          loader: 'html-loader',
+          options: {
+            sources: {
+              list: [
+                {
+                  tag: 'img',
+                  attribute: 'src',
+                  type: 'src',
+                }
+              ]
+            }
+          }
+        }
+      }
+    ]
+  }
 };
-
\ No newline at end of file +

main.js

+console.log('Test!');
+

wrapper.html

+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8">
+</head>
+<style>
+  img{
+    max-width: 320px;
+    height: auto;
+  }
+</style>
+<body>
+<h1>Hello world!</h1>
+
+<hr />
+
+<h2>Image in template</h2>
+
+<img src="./images/html5.png" />
+
+<hr />
+  
+</body>
+</html>
+

partials/body.html

+<h2>Image in partial</h2>
+
+<img src="../images/webpack.png" />
+
+<hr />
+
+...and the rest of this configuration example
+
\ No newline at end of file diff --git a/examples/html-loader/dist/main.js b/examples/html-loader/dist/main.js index a5093ab..6f1c74d 100644 --- a/examples/html-loader/dist/main.js +++ b/examples/html-loader/dist/main.js @@ -1 +1 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t){console.log("Test!")}]); \ No newline at end of file +console.log("Test!"); \ No newline at end of file diff --git a/examples/html-loader/dist/partial.html b/examples/html-loader/dist/partial.html deleted file mode 100644 index 87b831d..0000000 --- a/examples/html-loader/dist/partial.html +++ /dev/null @@ -1,21 +0,0 @@ -

Hello world!

webpack.config.js

-const path = require('path');
-const HtmlWebpackPlugin = require('html-webpack-plugin');
-const HtmlWebpackPartialsPlugin = require('html-webpack-partials-plugin');
-
-module.exports = {
-  entry: {
-    main: path.join(__dirname, './main.js')
-  },
-  output: {
-    path: path.join(__dirname, './dist'),
-    filename: '[name].js'
-  },
-  plugins: [
-    new HtmlWebpackPlugin(),
-    new HtmlWebpackPartialsPlugin({
-      path: path.join(__dirname, './partials/body.html')
-    })
-  ]
-};
-
\ No newline at end of file From 32dea6dc68f12c063605994aa2196e095b043fa5 Mon Sep 17 00:00:00 2001 From: sgb004 Date: Thu, 10 Mar 2022 16:02:32 -0600 Subject: [PATCH 29/54] New test for the html-loader example --- test/fixtures/html-loader.html | 80 ++++++++++++++++++++++++++++++++++ test/html-loader.test.js | 26 +++++++++++ 2 files changed, 106 insertions(+) create mode 100644 test/fixtures/html-loader.html create mode 100644 test/html-loader.test.js diff --git a/test/fixtures/html-loader.html b/test/fixtures/html-loader.html new file mode 100644 index 0000000..0f42510 --- /dev/null +++ b/test/fixtures/html-loader.html @@ -0,0 +1,80 @@ +

Hello world!


Image in template


Image in partial


webpack.config.js

+const path = require('path');
+const HtmlWebpackPlugin = require('html-webpack-plugin');
+const HtmlWebpackPartialsPlugin = require('../../');
+
+module.exports = {
+  entry: {
+    main: path.join(__dirname, './main.js')
+  },
+  output: {
+    path: path.join(__dirname, './dist'),
+    filename: '[name].js',
+    assetModuleFilename: 'images/[name][ext]',
+  },
+  plugins: [
+    new HtmlWebpackPlugin({
+      template: path.join(__dirname, './wrapper.html')
+    }),
+    new HtmlWebpackPartialsPlugin({
+      path: path.join(__dirname, './partials/body.html')
+    })
+  ],
+  module: {
+    rules: [
+      {
+        test: /\.(html)$/,
+        use: {
+          loader: 'html-loader',
+          options: {
+            sources: {
+              list: [
+                {
+                  tag: 'img',
+                  attribute: 'src',
+                  type: 'src',
+                }
+              ]
+            }
+          }
+        }
+      }
+    ]
+  }
+};
+

main.js

+console.log('Test!');
+

wrapper.html

+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8">
+</head>
+<style>
+  img{
+    max-width: 320px;
+    height: auto;
+  }
+</style>
+<body>
+<h1>Hello world!</h1>
+
+<hr />
+
+<h2>Image in template</h2>
+
+<img src="./images/html5.png" />
+
+<hr />
+  
+</body>
+</html>
+

partials/body.html

+<h2>Image in partial</h2>
+
+<img src="../images/webpack.png" />
+
+<hr />
+
+...and the rest of this configuration example
+
\ No newline at end of file diff --git a/test/html-loader.test.js b/test/html-loader.test.js new file mode 100644 index 0000000..02c3890 --- /dev/null +++ b/test/html-loader.test.js @@ -0,0 +1,26 @@ +const fs = require('fs'); +const path = require('path'); +const expect = require('chai').expect; +const webpack = require('webpack'); +const config = require('../examples/html-loader/webpack.config'); + +describe('html-loader', function() { + + it('Example of using html-loader', (done) => { + + webpack(config, (error, result) => { + + expect(error).to.equal(null); + + const html = fs.readFileSync(path.resolve(__dirname, '../examples/html-loader/dist/index.html')).toString(); + const fixture = fs.readFileSync(path.resolve(__dirname, 'fixtures/html-loader.html')).toString(); + + expect(html).to.equal(fixture); + + done(); + + }); + + }); + +}); From c253b5c488e98adc4001e1365122fb40316bc32d Mon Sep 17 00:00:00 2001 From: sgb004 Date: Thu, 10 Mar 2022 16:09:55 -0600 Subject: [PATCH 30/54] Updated settings to minify using html-loader with the changes applied to the plugin --- examples/minify/webpack.config.js | 33 ++++++++++++++----------------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/examples/minify/webpack.config.js b/examples/minify/webpack.config.js index 400aa2e..806942c 100644 --- a/examples/minify/webpack.config.js +++ b/examples/minify/webpack.config.js @@ -11,25 +11,22 @@ module.exports = { filename: '[name].js' }, plugins: [ - new HtmlWebpackPlugin({ - minify: { - - // Begin HTML Webpack Plugin Default - collapseWhitespace: true, - removeComments: true, - removeRedundantAttributes: true, - removeScriptTypeAttributes: true, - removeStyleLinkTypeAttributes: true, - useShortDoctype: true, - // End HTML Webpack Plugin Default - - minifyJS: true, - minifyCSS: true, - - }, - }), + new HtmlWebpackPlugin(), new HtmlWebpackPartialsPlugin({ path: path.join(__dirname, './partials/body.html') }) - ] + ], + module: { + rules: [ + { + test: /\.(html)$/, + use: { + loader: 'html-loader', + options: { + minimize: true + }, + } + }, + ] + } }; \ No newline at end of file From f24b452caefc01b8db4932b6d45d284c33ccf10e Mon Sep 17 00:00:00 2001 From: sgb004 Date: Thu, 10 Mar 2022 16:10:41 -0600 Subject: [PATCH 31/54] Documentation update for the Minify example --- examples/minify/partials/body.html | 33 ++++++++++++++---------------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/examples/minify/partials/body.html b/examples/minify/partials/body.html index ae81885..2574042 100644 --- a/examples/minify/partials/body.html +++ b/examples/minify/partials/body.html @@ -34,27 +34,24 @@

webpack.config.js

filename: '[name].js' }, plugins: [ - new HtmlWebpackPlugin({ - minify: { - - // Begin HTML Webpack Plugin Default - collapseWhitespace: true, - removeComments: true, - removeRedundantAttributes: true, - removeScriptTypeAttributes: true, - removeStyleLinkTypeAttributes: true, - useShortDoctype: true, - // End HTML Webpack Plugin Default - - minifyJS: true, - minifyCSS: true, - - }, - }), + new HtmlWebpackPlugin(), new HtmlWebpackPartialsPlugin({ path: path.join(__dirname, './partials/body.html') }) - ] + ], + module: { + rules: [ + { + test: /\.(html)$/, + use: { + loader: 'html-loader', + options: { + minimize: true + }, + } + } + ] + } }; From 882d422e0c94b880dc0a07e86cebe059072ac6a4 Mon Sep 17 00:00:00 2001 From: sgb004 Date: Thu, 10 Mar 2022 16:12:53 -0600 Subject: [PATCH 32/54] These files change due to update documentation and the update last version of the webpack and HTMLWebpackPlugin --- examples/minify/dist/index.html | 37 +++++++++++++++------------------ examples/minify/dist/main.js | 2 +- 2 files changed, 18 insertions(+), 21 deletions(-) diff --git a/examples/minify/dist/index.html b/examples/minify/dist/index.html index e247b88..9728444 100644 --- a/examples/minify/dist/index.html +++ b/examples/minify/dist/index.html @@ -1,4 +1,4 @@ -Webpack App

Hello world!

Test

webpack.config.js

+Webpack App

Hello world!

Test

webpack.config.js

 const path = require('path');
 const HtmlWebpackPlugin = require('html-webpack-plugin');
 const HtmlWebpackPartialsPlugin = require('../../');
@@ -12,27 +12,24 @@
     filename: '[name].js'
   },
   plugins: [
-    new HtmlWebpackPlugin({
-      minify: {
-
-        // Begin HTML Webpack Plugin Default
-        collapseWhitespace: true,
-        removeComments: true,
-        removeRedundantAttributes: true,
-        removeScriptTypeAttributes: true,
-        removeStyleLinkTypeAttributes: true,
-        useShortDoctype: true,
-        // End HTML Webpack Plugin Default
-
-        minifyJS: true,
-        minifyCSS: true,
-
-      },
-    }),
+    new HtmlWebpackPlugin(),
     new HtmlWebpackPartialsPlugin({
       path: path.join(__dirname, './partials/body.html')
     })
-  ]
+  ],
+  module: {
+    rules: [
+      {
+        test: /\.(html)$/,
+        use: {
+          loader: 'html-loader',
+          options: {
+            minimize: true
+          },
+        }
+      },
+    ]
+  }
 };
 

main.js

 console.log('Test!');
@@ -56,4 +53,4 @@
 console.log('three');
 </script>
 ...and the rest of this configuration example
-
\ No newline at end of file +
\ No newline at end of file diff --git a/examples/minify/dist/main.js b/examples/minify/dist/main.js index a5093ab..6f1c74d 100644 --- a/examples/minify/dist/main.js +++ b/examples/minify/dist/main.js @@ -1 +1 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t){console.log("Test!")}]); \ No newline at end of file +console.log("Test!"); \ No newline at end of file From a28eba56852f7e3cb36053d0a29b7b9608fa8849 Mon Sep 17 00:00:00 2001 From: sgb004 Date: Thu, 10 Mar 2022 16:15:36 -0600 Subject: [PATCH 33/54] I changed the way to get the index.html generated by webpack because result.compilation.assets['index.html'].source() no longer works --- test/minify.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/minify.test.js b/test/minify.test.js index 0d7833b..9ea21d0 100644 --- a/test/minify.test.js +++ b/test/minify.test.js @@ -12,7 +12,7 @@ describe('Minify', function() { expect(error).to.equal(null); - const html = result.compilation.assets['index.html'].source(); + const html = fs.readFileSync(path.resolve(__dirname, '../examples/minify/dist/index.html')).toString(); const fixture = fs.readFileSync(path.resolve(__dirname, 'fixtures/minify.html')).toString(); expect(html).to.equal(fixture); From 9b7703e20f514feab5efbc8abe67329acf224def Mon Sep 17 00:00:00 2001 From: sgb004 Date: Thu, 10 Mar 2022 16:17:25 -0600 Subject: [PATCH 34/54] These files change due to update documentation and the update last version of the webpack and HTMLWebpackPlugin --- examples/minify/dist/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/minify/dist/index.html b/examples/minify/dist/index.html index 9728444..7c278f6 100644 --- a/examples/minify/dist/index.html +++ b/examples/minify/dist/index.html @@ -27,7 +27,7 @@ minimize: true }, } - }, + } ] } }; From 05e2a0b0df9f05e564ddad54640a9c9fa7bfa248 Mon Sep 17 00:00:00 2001 From: sgb004 Date: Thu, 10 Mar 2022 16:20:01 -0600 Subject: [PATCH 35/54] I changed minify.html because HTMLWebpackPlugin no longer puts scripts in the end of body, instead it puts the script in the end of head. I added the attr defer in the script tag because HTMLWebpackPlugin add that in the script tag now. And also how I changed the documentation of the example. --- test/fixtures/minify.html | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/test/fixtures/minify.html b/test/fixtures/minify.html index e247b88..7c278f6 100644 --- a/test/fixtures/minify.html +++ b/test/fixtures/minify.html @@ -1,4 +1,4 @@ -Webpack App

Hello world!

Test

webpack.config.js

+Webpack App

Hello world!

Test

webpack.config.js

 const path = require('path');
 const HtmlWebpackPlugin = require('html-webpack-plugin');
 const HtmlWebpackPartialsPlugin = require('../../');
@@ -12,27 +12,24 @@
     filename: '[name].js'
   },
   plugins: [
-    new HtmlWebpackPlugin({
-      minify: {
-
-        // Begin HTML Webpack Plugin Default
-        collapseWhitespace: true,
-        removeComments: true,
-        removeRedundantAttributes: true,
-        removeScriptTypeAttributes: true,
-        removeStyleLinkTypeAttributes: true,
-        useShortDoctype: true,
-        // End HTML Webpack Plugin Default
-
-        minifyJS: true,
-        minifyCSS: true,
-
-      },
-    }),
+    new HtmlWebpackPlugin(),
     new HtmlWebpackPartialsPlugin({
       path: path.join(__dirname, './partials/body.html')
     })
-  ]
+  ],
+  module: {
+    rules: [
+      {
+        test: /\.(html)$/,
+        use: {
+          loader: 'html-loader',
+          options: {
+            minimize: true
+          },
+        }
+      }
+    ]
+  }
 };
 

main.js

 console.log('Test!');
@@ -56,4 +53,4 @@
 console.log('three');
 </script>
 ...and the rest of this configuration example
-
\ No newline at end of file +
\ No newline at end of file From a3957a3fb9756f3237a72380cf89cc703300d24c Mon Sep 17 00:00:00 2001 From: sgb004 Date: Thu, 10 Mar 2022 16:28:18 -0600 Subject: [PATCH 36/54] I changed the way to get the index.html generated by webpack because result.compilation.assets['index.html'].source() and result.compilation.assets['about.html'].source() no longer works --- test/page-template.test.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/page-template.test.js b/test/page-template.test.js index 5c8c9f5..db45f9e 100644 --- a/test/page-template.test.js +++ b/test/page-template.test.js @@ -12,12 +12,14 @@ describe('Page Template', function() { expect(error).to.equal(null); - const index_html = result.compilation.assets['index.html'].source(); + //const index_html = result.compilation.assets['index.html'].source(); + const index_html = fs.readFileSync(path.resolve(__dirname, '../examples/page-template/dist/index.html')).toString(); const index_fixture = fs.readFileSync(path.resolve(__dirname, 'fixtures/page-template-index.html')).toString(); expect(index_html).to.equal(index_fixture); - const about_html = result.compilation.assets['about.html'].source(); + //const about_html = result.compilation.assets['about.html'].source(); + const about_html = fs.readFileSync(path.resolve(__dirname, '../examples/page-template/dist/about.html')).toString(); const about_fixture = fs.readFileSync(path.resolve(__dirname, 'fixtures/page-template-about.html')).toString(); expect(about_html).to.equal(about_fixture); From 43f21418083658b5d098b392f669fe8172ed0d69 Mon Sep 17 00:00:00 2001 From: sgb004 Date: Thu, 10 Mar 2022 16:29:28 -0600 Subject: [PATCH 37/54] I changed page-template-about.html and page-template-index.html because HTMLWebpackPlugin no longer puts scripts in the end of body, instead it puts the script in the end of head. I added the attr defer in the script tag because HTMLWebpackPlugin add that in the script tag now. I think that these changes do not affect the expected result. --- test/fixtures/page-template-about.html | 2 +- test/fixtures/page-template-index.html | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/fixtures/page-template-about.html b/test/fixtures/page-template-about.html index bb630b4..64758b6 100644 --- a/test/fixtures/page-template-about.html +++ b/test/fixtures/page-template-about.html @@ -1 +1 @@ -

Hello, about!

Footer
\ No newline at end of file +

Hello, about!

Footer
\ No newline at end of file diff --git a/test/fixtures/page-template-index.html b/test/fixtures/page-template-index.html index 84efdf7..7784631 100644 --- a/test/fixtures/page-template-index.html +++ b/test/fixtures/page-template-index.html @@ -1,4 +1,4 @@ -

Hello, Home!

About Page

webpack.config.js

+

Hello, Home!

About Page

webpack.config.js

 const path = require('path');
 const HtmlWebpackPlugin = require('html-webpack-plugin');
 const HtmlWebpackPartialsPlugin = require('../../');
@@ -58,4 +58,4 @@
 <footer>Footer</footer>
 

partials/nav.html

 <nav>Nav</nav>
-
Footer
\ No newline at end of file +
Footer
\ No newline at end of file From 3a9bfbaef627e6d3fd6ee1dc27228a53ad24a5a6 Mon Sep 17 00:00:00 2001 From: sgb004 Date: Thu, 10 Mar 2022 16:30:08 -0600 Subject: [PATCH 38/54] These files change due to update of the plugin webpack and HTMLWebpackPlugin --- examples/page-template/dist/about.html | 2 +- examples/page-template/dist/index.html | 4 ++-- examples/page-template/dist/main.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/page-template/dist/about.html b/examples/page-template/dist/about.html index bb630b4..64758b6 100644 --- a/examples/page-template/dist/about.html +++ b/examples/page-template/dist/about.html @@ -1 +1 @@ -

Hello, about!

Footer
\ No newline at end of file +

Hello, about!

Footer
\ No newline at end of file diff --git a/examples/page-template/dist/index.html b/examples/page-template/dist/index.html index 84efdf7..7784631 100644 --- a/examples/page-template/dist/index.html +++ b/examples/page-template/dist/index.html @@ -1,4 +1,4 @@ -

Hello, Home!

About Page

webpack.config.js

+

Hello, Home!

About Page

webpack.config.js

 const path = require('path');
 const HtmlWebpackPlugin = require('html-webpack-plugin');
 const HtmlWebpackPartialsPlugin = require('../../');
@@ -58,4 +58,4 @@
 <footer>Footer</footer>
 

partials/nav.html

 <nav>Nav</nav>
-
Footer
\ No newline at end of file +
Footer
\ No newline at end of file diff --git a/examples/page-template/dist/main.js b/examples/page-template/dist/main.js index a5093ab..6f1c74d 100644 --- a/examples/page-template/dist/main.js +++ b/examples/page-template/dist/main.js @@ -1 +1 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t){console.log("Test!")}]); \ No newline at end of file +console.log("Test!"); \ No newline at end of file From 1998753a20f978565d07033dcd96256ffea0821f Mon Sep 17 00:00:00 2001 From: sgb004 Date: Thu, 10 Mar 2022 23:00:34 -0600 Subject: [PATCH 39/54] I changed the way to get the index.html generated by webpack because result.compilation.assets['index.html'].source() and result.compilation.assets['about.html'].source() no longer works --- test/react-root.test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/react-root.test.js b/test/react-root.test.js index 98c6eb1..ff515e6 100644 --- a/test/react-root.test.js +++ b/test/react-root.test.js @@ -8,7 +8,7 @@ describe('React Root', function() { // This takes a little extra time to compile, so we need to up the default timeout a bit - this.timeout(10000); + this.timeout(20000); it('Adds a static partial containing a div with id of root to the body and compiles a react app', (done) => { @@ -16,7 +16,7 @@ describe('React Root', function() { expect(error).to.equal(null); - const html = result.compilation.assets['index.html'].source(); + const html = fs.readFileSync(path.resolve(__dirname, '../examples/react-root/dist/index.html')).toString(); const fixture = fs.readFileSync(path.resolve(__dirname, 'fixtures/react-root.html')).toString(); expect(html).to.equal(fixture); From a32d5f2c24b742507117facf985ec9b6641e826a Mon Sep 17 00:00:00 2001 From: sgb004 Date: Thu, 10 Mar 2022 23:01:36 -0600 Subject: [PATCH 40/54] I changed react-root.html because HTMLWebpackPlugin no longer puts scripts in the end of body, instead it puts the script in the end of head.\nI added the attr defer in the script tag because HTMLWebpackPlugin add that in the script tag now.\nI think that these changes do not affect the expected result. --- test/fixtures/react-root.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/fixtures/react-root.html b/test/fixtures/react-root.html index f344ad9..8b74408 100644 --- a/test/fixtures/react-root.html +++ b/test/fixtures/react-root.html @@ -1,4 +1,4 @@ -Webpack App

webpack.config.js

+Webpack App

webpack.config.js

 const path = require('path');
 const HtmlWebpackPlugin = require('html-webpack-plugin');
 const HtmlWebpackPartialsPlugin = require('../../');
@@ -46,4 +46,4 @@ 

Hello, world!

,

partials/body.html

 <div id="root"></div>
 ...and the rest of this configuration example
-
\ No newline at end of file +
\ No newline at end of file From 9c3eb6569802cd4bd6f24c065084c7f1cc2197ca Mon Sep 17 00:00:00 2001 From: sgb004 Date: Thu, 10 Mar 2022 23:02:16 -0600 Subject: [PATCH 41/54] These files change due to update of the plugin webpack and HTMLWebpackPlugin --- examples/react-root/dist/index.html | 4 ++-- examples/react-root/dist/main.js | 32 ++--------------------------- 2 files changed, 4 insertions(+), 32 deletions(-) diff --git a/examples/react-root/dist/index.html b/examples/react-root/dist/index.html index f344ad9..8b74408 100644 --- a/examples/react-root/dist/index.html +++ b/examples/react-root/dist/index.html @@ -1,4 +1,4 @@ -Webpack App

webpack.config.js

+Webpack App

webpack.config.js

 const path = require('path');
 const HtmlWebpackPlugin = require('html-webpack-plugin');
 const HtmlWebpackPartialsPlugin = require('../../');
@@ -46,4 +46,4 @@ 

Hello, world!

,

partials/body.html

 <div id="root"></div>
 ...and the rest of this configuration example
-
\ No newline at end of file +
\ No newline at end of file diff --git a/examples/react-root/dist/main.js b/examples/react-root/dist/main.js index 5309f3d..8b9fd06 100644 --- a/examples/react-root/dist/main.js +++ b/examples/react-root/dist/main.js @@ -1,30 +1,2 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var l=t[r]={i:r,l:!1,exports:{}};return e[r].call(l.exports,l,l.exports,n),l.l=!0,l.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var l in e)n.d(r,l,function(t){return e[t]}.bind(null,l));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=3)}([function(e,t,n){"use strict";e.exports=n(4)},function(e,t,n){"use strict"; -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/var r=Object.getOwnPropertySymbols,l=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,o,u=a(e),c=1;cz.length&&z.push(e)}function R(e,t,n){return null==e?0:function e(t,n,r,l){var o=typeof t;"undefined"!==o&&"boolean"!==o||(t=null);var u=!1;if(null===t)u=!0;else switch(o){case"string":case"number":u=!0;break;case"object":switch(t.$$typeof){case i:case a:u=!0}}if(u)return r(l,t,""===n?"."+I(t,0):n),1;if(u=0,n=""===n?".":n+":",Array.isArray(t))for(var c=0;c