From b7e5859db3974fbbcc2049bbf0e0950fe8dfa61c Mon Sep 17 00:00:00 2001 From: Gabriel Csapo Date: Sat, 16 Oct 2021 10:02:43 -0700 Subject: [PATCH 1/6] [chore] fixes CI to avoid race conditions --- examples/javascript/dist/webpack-5/index.html | 2 +- examples/pug-loader/dist/webpack-5/index.html | 2 +- package.json | 4 ++-- spec/support/jasmine.json | 8 -------- 4 files changed, 4 insertions(+), 12 deletions(-) delete mode 100644 spec/support/jasmine.json diff --git a/examples/javascript/dist/webpack-5/index.html b/examples/javascript/dist/webpack-5/index.html index 835e767f..eb255934 100644 --- a/examples/javascript/dist/webpack-5/index.html +++ b/examples/javascript/dist/webpack-5/index.html @@ -1 +1 @@ -Hello World from backend2021-10-09T14:25:52.580Z

Partial

\ No newline at end of file +Hello World from backend2021-10-16T17:01:43.132Z

Partial

\ No newline at end of file diff --git a/examples/pug-loader/dist/webpack-5/index.html b/examples/pug-loader/dist/webpack-5/index.html index 203953b6..dab0b0ea 100644 --- a/examples/pug-loader/dist/webpack-5/index.html +++ b/examples/pug-loader/dist/webpack-5/index.html @@ -1 +1 @@ -pug demo
Current time

1999-01-01T05:00:00.000Z

\ No newline at end of file +pug demo
Current time

1999-01-01T08:00:00.000Z

\ No newline at end of file diff --git a/package.json b/package.json index 6845ff17..4b5118c3 100644 --- a/package.json +++ b/package.json @@ -32,9 +32,9 @@ "commitizen": "^4.2.4", "css-loader": "5.0.1", "cz-conventional-changelog": "2.1.0", - "dir-compare": "1.7.2", + "dir-compare": "^3.3.0", "html-loader": "2.1.1", - "jest": "26.5.3", + "jest": "^27.2.5", "mini-css-extract-plugin": "^1.6.0", "pug": "3.0.2", "pug-loader": "2.4.0", diff --git a/spec/support/jasmine.json b/spec/support/jasmine.json deleted file mode 100644 index 54750e1d..00000000 --- a/spec/support/jasmine.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "spec_dir": "spec", - "spec_files": [ - "**/*[sS]pec.js" - ], - "stopSpecOnExpectationFailure": false, - "random": true -} From 79be7799c9a038b18f3fd7c01359ec76728e30d2 Mon Sep 17 00:00:00 2001 From: Gabriel Csapo Date: Sat, 16 Oct 2021 10:06:22 -0700 Subject: [PATCH 2/6] [chore] changes actions to run on pull_requests --- .github/workflows/main.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 51f1a2ad..61d5c24d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,5 +1,8 @@ name: CI -on: [push] + push: + branches: [main] + pull_request: + branches: [main] jobs: build: name: test Node ${{ matrix.node }} Webpack ${{ matrix.webpack }} ${{ matrix.os }} From 7d3645b01a491278d85f84b7f7c986e7f103523d Mon Sep 17 00:00:00 2001 From: Mo Beigi Date: Sun, 24 Oct 2021 15:10:34 +1100 Subject: [PATCH 3/6] Bump pretty-error to 4.0.0 to fix transitive vuln for ansi-regex CVE-2021-3807 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4b5118c3..28b8ef63 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "@types/html-minifier-terser": "^6.0.0", "html-minifier-terser": "^6.0.2", "lodash": "^4.17.21", - "pretty-error": "^3.0.4", + "pretty-error": "^4.0.0", "tapable": "^2.0.0" }, "peerDependencies": { From 1e4262528ff02a83e1fc7739b42472680fd205c2 Mon Sep 17 00:00:00 2001 From: Oskari Noppa Date: Sat, 7 Aug 2021 01:16:51 +0300 Subject: [PATCH 4/6] feat: Support type=module via scriptLoading option Add third option, `'module'`, to the `scriptLoading` option. This partially fixes issue #1663, which is also where this solution to the problem was proposed. Although this patch doesn't give a way to freely set `type` attribute to any value, setting `scriptLoading: "module" now makes the scripts have attribute `type="module"`, which was the original motivation behind the issue. --- README.md | 2 +- index.js | 5 +++-- spec/basic.spec.js | 14 ++++++++++++++ typings.d.ts | 2 +- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a27337fb..8080d1ae 100644 --- a/README.md +++ b/README.md @@ -149,7 +149,7 @@ Allowed values are as follows: |**`templateParameters`**|`{Boolean\|Object\|Function}`| `false`| Allows to overwrite the parameters used in the template - see [example](https://github.com/jantimon/html-webpack-plugin/tree/master/examples/template-parameters) | |**`inject`**|`{Boolean\|String}`|`true`|`true \|\| 'head' \|\| 'body' \|\| false` Inject all assets into the given `template` or `templateContent`. When passing `'body'` all javascript resources will be placed at the bottom of the body element. `'head'` will place the scripts in the head element. Passing `true` will add it to the head/body depending on the `scriptLoading` option. Passing `false` will disable automatic injections. - see the [inject:false example](https://github.com/jantimon/html-webpack-plugin/tree/master/examples/custom-insertion-position)| |**`publicPath`**|`{String\|'auto'}`|`'auto'`|The publicPath used for script and link tags| -|**`scriptLoading`**|`{'blocking'\|'defer'}`|`'defer'`| Modern browsers support non blocking javascript loading (`'defer'`) to improve the page startup performance. | +|**`scriptLoading`**|`{'blocking'\|'defer'\|'module'}`|`'defer'`| Modern browsers support non blocking javascript loading (`'defer'`) to improve the page startup performance. Setting to `'module'` adds attribute [`type="module"`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules#applying_the_module_to_your_html). This also implies "defer", since modules are automatically deferred. | |**`favicon`**|`{String}`|``|Adds the given favicon path to the output HTML| |**`meta`**|`{Object}`|`{}`|Allows to inject `meta`-tags. E.g. `meta: {viewport: 'width=device-width, initial-scale=1, shrink-to-fit=no'}`| |**`base`**|`{Object\|String\|false}`|`false`|Inject a [`base`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base) tag. E.g. `base: "https://example.com/path/page.html`| diff --git a/index.js b/index.js index 45f286ad..de9a6294 100644 --- a/index.js +++ b/index.js @@ -70,7 +70,7 @@ class HtmlWebpackPlugin { this.options = options; // Assert correct option spelling - assert(options.scriptLoading === 'defer' || options.scriptLoading === 'blocking', 'scriptLoading needs to be set to "defer" or "blocking'); + assert(options.scriptLoading === 'defer' || options.scriptLoading === 'blocking' || options.scriptLoading === 'module', 'scriptLoading needs to be set to "defer", "blocking" or "module"'); assert(options.inject === true || options.inject === false || options.inject === 'head' || options.inject === 'body', 'inject needs to be set to true, false, "head" or "body'); // Default metaOptions if no template is provided @@ -741,7 +741,8 @@ function hookIntoCompiler (compiler, options, plugin) { voidTag: false, meta: { plugin: 'html-webpack-plugin' }, attributes: { - defer: options.scriptLoading !== 'blocking', + defer: options.scriptLoading === 'defer', + type: options.scriptLoading === 'module' ? 'module' : undefined, src: scriptAsset } })); diff --git a/spec/basic.spec.js b/spec/basic.spec.js index 794e14c6..b325f7cd 100644 --- a/spec/basic.spec.js +++ b/spec/basic.spec.js @@ -2526,6 +2526,20 @@ describe('HtmlWebpackPlugin', () => { }, [/Hello World from backend2021-10-16T17:01:43.132Z

Partial

\ No newline at end of file +Hello World from backend2021-10-25T11:10:42.875Z

Partial

\ No newline at end of file diff --git a/examples/pug-loader/dist/webpack-5/index.html b/examples/pug-loader/dist/webpack-5/index.html index dab0b0ea..5f9744d5 100644 --- a/examples/pug-loader/dist/webpack-5/index.html +++ b/examples/pug-loader/dist/webpack-5/index.html @@ -1 +1 @@ -pug demo
Current time

1999-01-01T08:00:00.000Z

\ No newline at end of file +pug demo
Current time

1998-12-31T23:00:00.000Z

\ No newline at end of file From 873d75bbcbd28ef7dff0a1549d3e442119e278d3 Mon Sep 17 00:00:00 2001 From: Jan Nicklas Date: Mon, 25 Oct 2021 14:27:15 +0200 Subject: [PATCH 6/6] chore(release): 5.5.0 --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b582342..e85923e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [5.5.0](https://github.com/jantimon/html-webpack-plugin/compare/v5.4.0...v5.5.0) (2021-10-25) + + +### Features + +* Support type=module via scriptLoading option ([1e42625](https://github.com/jantimon/html-webpack-plugin/commit/1e4262528ff02a83e1fc7739b42472680fd205c2)), closes [#1663](https://github.com/jantimon/html-webpack-plugin/issues/1663) + ### [5.4.0](https://github.com/jantimon/html-webpack-plugin/compare/v5.3.2...v5.3.3) (2021-10-15) ### Features diff --git a/package.json b/package.json index 28b8ef63..bc3c6b49 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "html-webpack-plugin", - "version": "5.4.0", + "version": "5.5.0", "license": "MIT", "description": "Simplifies creation of HTML files to serve your webpack bundles", "author": "Jan Nicklas (https://github.com/jantimon)",