From 875b04112e93f85c7215565151e80e0d44ae0649 Mon Sep 17 00:00:00 2001 From: Johannes Raggam Date: Mon, 19 Dec 2022 11:58:14 +0100 Subject: [PATCH 1/6] breaking(Build): Separate modernizr into a own bundle. Since Patternslib 9.0.0-alpha.0 where we introduced webpack module federation for our bundles, Modernizr is loaded asynchronously and applying it's CSS classes a tick too late. For example, the change from the `no-js` to the `js` class was done while the tiles have already been drawn and visible on the screen, resulting in screen flickering. There are a number of projects which depend on Modernizr being applied early. This change now fixes the problem by separating the Modernizr build from the Patternslib bundle. If you depend on Modernzir, please include the new `modernizr.min.js` bundle in a script tag, preferably before the Patternslib bundle `bundle.min.js`. The global switch "window.__patternslib_disable_modernizr" is also removed, as it got useless. --- src/modernizr.js | 5 +++++ src/pat/clone-code/index.html | 4 ---- src/patterns.js | 8 -------- webpack/webpack.config.js | 1 + 4 files changed, 6 insertions(+), 12 deletions(-) create mode 100644 src/modernizr.js diff --git a/src/modernizr.js b/src/modernizr.js new file mode 100644 index 000000000..dddaef9da --- /dev/null +++ b/src/modernizr.js @@ -0,0 +1,5 @@ +// Include modernizr for a modernizr bundle. +// To use it in your project, include the `modernizr.min.js` bundle in a script +// tag. This is for projects where styles depend on specific modernizr features +// like the change from a `no-js` class to a `js` class. +import("modernizr"); diff --git a/src/pat/clone-code/index.html b/src/pat/clone-code/index.html index cc63e8a50..0740f109b 100644 --- a/src/pat/clone-code/index.html +++ b/src/pat/clone-code/index.html @@ -4,9 +4,6 @@ pat-clone demo page - @@ -34,6 +31,5 @@

Example 2

Test paragraph

- diff --git a/src/patterns.js b/src/patterns.js index 32261af9a..3d35f7ee4 100644 --- a/src/patterns.js +++ b/src/patterns.js @@ -74,12 +74,4 @@ import "@patternslib/pat-upload"; // Set to ``true`` to include core styles via JavaScript //window.__patternslib_import_styles = false; -// Include modernizr per default. -// Most of our styles depend on it. -// You might want to disable it for your project by setting: -// window.__patternslib_disable_modernizr = true; -if (!window.__patternslib_disable_modernizr) { - import("modernizr"); -} - registry.init(); diff --git a/webpack/webpack.config.js b/webpack/webpack.config.js index aecf95495..2b4d2a880 100644 --- a/webpack/webpack.config.js +++ b/webpack/webpack.config.js @@ -10,6 +10,7 @@ module.exports = () => { let config = { entry: { "bundle.min": path.resolve(__dirname, "../src/index.js"), + "modernizr.min": path.resolve(__dirname, "../src/modernizr.js"), }, }; From 96a7ed25c5cfe8e3c4454892ae787007ffa53467 Mon Sep 17 00:00:00 2001 From: Johannes Raggam Date: Mon, 19 Dec 2022 16:38:08 +0100 Subject: [PATCH 2/6] maint: Add modernizr.min.js bundle to main index.js demo file for demonstration. --- index.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index d479fe384..954ad7cc6 100644 --- a/index.html +++ b/index.html @@ -1,9 +1,10 @@ - + Patterns demo pages + From 66d8fccc9980e3c3024bdcae8ac9e0597d5f740e Mon Sep 17 00:00:00 2001 From: Johannes Raggam Date: Wed, 7 Dec 2022 12:35:10 +0100 Subject: [PATCH 3/6] Reformat Modernizr options. --- .modernizrrc.js | 327 ++++++++++++++++++++++++------------------------ 1 file changed, 162 insertions(+), 165 deletions(-) diff --git a/.modernizrrc.js b/.modernizrrc.js index c6b4331bd..626b43ec8 100644 --- a/.modernizrrc.js +++ b/.modernizrrc.js @@ -1,167 +1,164 @@ module.exports = { - "classPrefix": "", - "options": [ - "addTest", - "atRule", - "domPrefixes", - "hasEvent", - "html5shiv", - "html5printshiv", - "load", - "mq", - "prefixed", - "prefixes", - "prefixedCSS", - "setClasses", - "testAllProps", - "testProp", - "testStyles" - ], - "feature-detects": [ - "a/download", - "applicationcache", - "blob", - "canvas", - "canvas/blending", - "canvas/todataurl", - "canvas/winding", - "canvastext", - "contenteditable", - "contextmenu", - "cookies", - "cors", - "custom-elements", - "css/all", - "css/animations", - "css/appearance", - "css/backdropfilter", - "css/backgroundblendmode", - "css/backgroundcliptext", - "css/backgroundposition-shorthand", - "css/backgroundposition-xy", - "css/backgroundrepeat", - "css/backgroundsize", - "css/backgroundsizecover", - "css/borderimage", - "css/borderradius", - "css/boxshadow", - "css/boxsizing", - "css/calc", - "css/checked", - "css/chunit", - "css/columns", - "css/cssgrid", - "css/cubicbezierrange", - "css/displayrunin", - "css/displaytable", - "css/ellipsis", - "css/escape", - "css/exunit", - "css/filters", - "css/flexbox", - "css/flexboxlegacy", - "css/flexboxtweener", - "css/flexwrap", - "css/fontface", - "css/generatedcontent", - "css/gradients", - "css/hairline", - "css/hsla", - "css/invalid", - "css/lastchild", - "css/mask", - "css/mediaqueries", - "css/multiplebgs", - "css/nthchild", - "css/objectfit", - "css/opacity", - "css/overflow-scrolling", - "css/pointerevents", - "css/positionsticky", - "css/pseudoanimations", - "css/pseudotransitions", - "css/reflections", - "css/regions", - "css/remunit", - "css/resize", - "css/rgba", - "css/scrollbars", - "css/scrollsnappoints", - "css/shapes", - "css/siblinggeneral", - "css/subpixelfont", - "css/supports", - "css/target", - "css/textalignlast", - "css/textshadow", - "css/transforms", - "css/transformslevel2", - "css/transforms3d", - "css/transformstylepreserve3d", - "css/transitions", - "css/userselect", - "css/valid", - "css/vhunit", - "css/vmaxunit", - "css/vminunit", - "css/vwunit", - "css/will-change", - "css/wrapflow", - "dom/classlist", - "dom/createElement-attrs", - "dom/dataset", - "dom/documentfragment", - "dom/hidden", - "dom/microdata", - "dom/mutationObserver", - "dom/passiveeventlisteners", - "event/deviceorientation-motion", - "event/oninput", - "eventlistener", - "exif-orientation", - "forms/capture", - "forms/fileinput", - "forms/fileinputdirectory", - "forms/formattribute", - "forms/placeholder", - "forms/requestautocomplete", - "forms/validation", - "inputtypes", - "fullscreen-api", - "hashchange", - "hiddenscroll", - "history", - "htmlimports", - "iframe/sandbox", - "iframe/seamless", - "iframe/srcdoc", - "json", - "mediaquery/hovermq", - "mediaquery/pointermq", - "notification", - "pagevisibility-api", - "performance", - "postmessage", - "proximity", - "queryselector", - "requestanimationframe", - "storage/localstorage", - "storage/sessionstorage", - "storage/websqldatabase", - "touchevents", - "unicode", - "unicode-range", - "url/bloburls", - "url/data-uri", - "url/parser", - "url/urlsearchparams", - "userdata", - "vibration", - "video", - "video/autoplay", - "video/crossorigin", - "video/loop", - "video/preload", - "xdomainrequest" - ] + "classPrefix": "", + "options": [ + "addTest", + "atRule", + "domPrefixes", + "hasEvent", + "html5shiv", + "html5printshiv", + "load", + "mq", + "prefixed", + "prefixes", + "prefixedCSS", + "setClasses", + ], + "feature-detects": [ + "a/download", + "applicationcache", + "blob", + "canvas", + "canvas/blending", + "canvas/todataurl", + "canvas/winding", + "canvastext", + "contenteditable", + "contextmenu", + "cookies", + "cors", + "custom-elements", + "css/all", + "css/animations", + "css/appearance", + "css/backdropfilter", + "css/backgroundblendmode", + "css/backgroundcliptext", + "css/backgroundposition-shorthand", + "css/backgroundposition-xy", + "css/backgroundrepeat", + "css/backgroundsize", + "css/backgroundsizecover", + "css/borderimage", + "css/borderradius", + "css/boxshadow", + "css/boxsizing", + "css/calc", + "css/checked", + "css/chunit", + "css/columns", + "css/cssgrid", + "css/cubicbezierrange", + "css/displayrunin", + "css/displaytable", + "css/ellipsis", + "css/escape", + "css/exunit", + "css/filters", + "css/flexbox", + "css/flexboxlegacy", + "css/flexboxtweener", + "css/flexwrap", + "css/fontface", + "css/generatedcontent", + "css/gradients", + "css/hairline", + "css/hsla", + "css/invalid", + "css/lastchild", + "css/mask", + "css/mediaqueries", + "css/multiplebgs", + "css/nthchild", + "css/objectfit", + "css/opacity", + "css/overflow-scrolling", + "css/pointerevents", + "css/positionsticky", + "css/pseudoanimations", + "css/pseudotransitions", + "css/reflections", + "css/regions", + "css/remunit", + "css/resize", + "css/rgba", + "css/scrollbars", + "css/scrollsnappoints", + "css/shapes", + "css/siblinggeneral", + "css/subpixelfont", + "css/supports", + "css/target", + "css/textalignlast", + "css/textshadow", + "css/transforms", + "css/transformslevel2", + "css/transforms3d", + "css/transformstylepreserve3d", + "css/transitions", + "css/userselect", + "css/valid", + "css/vhunit", + "css/vmaxunit", + "css/vminunit", + "css/vwunit", + "css/will-change", + "css/wrapflow", + "dom/classlist", + "dom/createElement-attrs", + "dom/dataset", + "dom/documentfragment", + "dom/hidden", + "dom/microdata", + "dom/mutationObserver", + "dom/passiveeventlisteners", + "event/deviceorientation-motion", + "event/oninput", + "eventlistener", + "exif-orientation", + "forms/capture", + "forms/fileinput", + "forms/fileinputdirectory", + "forms/formattribute", + "forms/placeholder", + "forms/requestautocomplete", + "forms/validation", + "inputtypes", + "fullscreen-api", + "hashchange", + "hiddenscroll", + "history", + "htmlimports", + "iframe/sandbox", + "iframe/seamless", + "iframe/srcdoc", + "json", + "mediaquery/hovermq", + "mediaquery/pointermq", + "notification", + "pagevisibility-api", + "performance", + "postmessage", + "proximity", + "queryselector", + "requestanimationframe", + "storage/localstorage", + "storage/sessionstorage", + "storage/websqldatabase", + "touchevents", + "unicode", + "unicode-range", + "url/bloburls", + "url/data-uri", + "url/parser", + "url/urlsearchparams", + "userdata", + "vibration", + "video", + "video/autoplay", + "video/crossorigin", + "video/loop", + "video/preload", + "xdomainrequest", + ], }; From e1fd8dee625257cb2922429a6eb828d29d053f7d Mon Sep 17 00:00:00 2001 From: Johannes Raggam Date: Wed, 7 Dec 2022 13:36:42 +0100 Subject: [PATCH 4/6] maint(Build): Optimize modernizr configuration. Remove unnecessary tests in .modernizrrc.js and slim down the build size. --- .modernizrrc.js | 71 +++---------------------------------------------- 1 file changed, 3 insertions(+), 68 deletions(-) diff --git a/.modernizrrc.js b/.modernizrrc.js index 626b43ec8..f94dd21c9 100644 --- a/.modernizrrc.js +++ b/.modernizrrc.js @@ -1,33 +1,10 @@ module.exports = { "classPrefix": "", - "options": [ - "addTest", - "atRule", - "domPrefixes", - "hasEvent", - "html5shiv", - "html5printshiv", - "load", - "mq", - "prefixed", - "prefixes", - "prefixedCSS", - "setClasses", - ], + "enableClasses": true, + "enableJSClass": true, + "options": ["setClasses"], "feature-detects": [ "a/download", - "applicationcache", - "blob", - "canvas", - "canvas/blending", - "canvas/todataurl", - "canvas/winding", - "canvastext", - "contenteditable", - "contextmenu", - "cookies", - "cors", - "custom-elements", "css/all", "css/animations", "css/appearance", @@ -104,61 +81,19 @@ module.exports = { "css/vwunit", "css/will-change", "css/wrapflow", - "dom/classlist", - "dom/createElement-attrs", - "dom/dataset", - "dom/documentfragment", - "dom/hidden", - "dom/microdata", - "dom/mutationObserver", - "dom/passiveeventlisteners", "event/deviceorientation-motion", - "event/oninput", - "eventlistener", "exif-orientation", "forms/capture", "forms/fileinput", - "forms/fileinputdirectory", - "forms/formattribute", - "forms/placeholder", - "forms/requestautocomplete", "forms/validation", "inputtypes", "fullscreen-api", - "hashchange", "hiddenscroll", - "history", - "htmlimports", - "iframe/sandbox", - "iframe/seamless", - "iframe/srcdoc", - "json", "mediaquery/hovermq", "mediaquery/pointermq", - "notification", - "pagevisibility-api", - "performance", - "postmessage", - "proximity", - "queryselector", - "requestanimationframe", - "storage/localstorage", - "storage/sessionstorage", - "storage/websqldatabase", "touchevents", - "unicode", - "unicode-range", - "url/bloburls", - "url/data-uri", - "url/parser", - "url/urlsearchparams", - "userdata", "vibration", - "video", "video/autoplay", - "video/crossorigin", "video/loop", - "video/preload", - "xdomainrequest", ], }; From ee2acdc686bc26e799026e1ca8d1e434ad0f79c4 Mon Sep 17 00:00:00 2001 From: Johannes Raggam Date: Wed, 7 Dec 2022 13:16:41 +0100 Subject: [PATCH 5/6] maint(Build): Directly build the modernizr bundle. Do not use an webpack entry to build the modernizr bundle with an webpack runtime overhead. Instead, build it directly but abusing the webpack CopyPlugin transform mechanism. We could also build the modernizr bundle from the Makefile but that wouldn't provide the file when watching or when running webpack-dev-server. --- package.json | 4 ++-- src/modernizr.js | 5 ---- webpack/webpack.config.js | 49 +++++++++++++++++++++++++++------------ 3 files changed, 36 insertions(+), 22 deletions(-) delete mode 100644 src/modernizr.js diff --git a/package.json b/package.json index 7569237b1..61efecb6b 100644 --- a/package.json +++ b/package.json @@ -44,8 +44,8 @@ "@patternslib/pat-tiptap": "^4.7.2", "@patternslib/pat-upload": "^3.1.1", "copy-webpack-plugin": "^11.0.0", - "pegjs": "0.11.0-master.b7b87ea", - "webpack-modernizr-loader": "^5.0.0" + "modernizr": "^3.12.0", + "pegjs": "0.11.0-master.b7b87ea" }, "resolutions": { "jquery": "3.6.2" diff --git a/src/modernizr.js b/src/modernizr.js deleted file mode 100644 index dddaef9da..000000000 --- a/src/modernizr.js +++ /dev/null @@ -1,5 +0,0 @@ -// Include modernizr for a modernizr bundle. -// To use it in your project, include the `modernizr.min.js` bundle in a script -// tag. This is for projects where styles depend on specific modernizr features -// like the change from a `no-js` class to a `js` class. -import("modernizr"); diff --git a/webpack/webpack.config.js b/webpack/webpack.config.js index 2b4d2a880..0e6d209e6 100644 --- a/webpack/webpack.config.js +++ b/webpack/webpack.config.js @@ -5,12 +5,13 @@ const mf_config = require("@patternslib/dev/webpack/webpack.mf"); const package_json = require("../package.json"); const path = require("path"); const webpack_config = require("@patternslib/dev/webpack/webpack.config").config; +const modernizr_config = require("../.modernizrrc.js"); +const modernizr = require("modernizr"); module.exports = () => { let config = { entry: { "bundle.min": path.resolve(__dirname, "../src/index.js"), - "modernizr.min": path.resolve(__dirname, "../src/modernizr.js"), }, }; @@ -21,15 +22,6 @@ module.exports = () => { config.output.path = path.resolve(__dirname, "../dist/"); - // Modernizr - config.module.rules.push({ - test: /\.modernizrrc\.js$/, - loader: "webpack-modernizr-loader", - }); - config.resolve.alias = { - modernizr$: path.resolve(__dirname, "../.modernizrrc.js"), - }; - // Module federation config.plugins.push( mf_config({ @@ -50,14 +42,41 @@ module.exports = () => { }) ); - // BBB polyfills not used anymore. - // TODO: Remove for next major version. - // Polyfills + // Copy static files config.plugins.push( - // Copy polyfills loader to the output path. new CopyPlugin({ patterns: [ - { from: path.resolve(__dirname, "../src/polyfills-loader.js"), }, // prettier-ignore + // Copy polyfills loader to the output path. + // TODO: Polyfills not used anymore, remove for next major version. + { from: path.resolve(__dirname, "../src/polyfills-loader.js") }, + + // Build and copy Modernizr. + // We're abusing the CopyPlugin transform method here to build + // a Modernizr bundle using the modernizr config. The input + // file does not matter and could be anything - we're using the + // modernizr config itself. + // Why building modernizr here and not in the Makefile? + // Because we want webpack-dev-server also to serve it. + { + from: path.resolve(__dirname, "../.modernizrrc.js"), + to: "[path]modernizr.min.js", + transform: { + transformer: () => { + return new Promise((resolve) => { + modernizr.build( + { + ...modernizr_config, + minify: process.env.NODE_ENV === "production", + }, + (result) => { + resolve(result); + } + ); + }); + }, + cache: true, + }, + }, ], }) ); From 2bc52ddd60516fac71b671ba3d6c6bd4fad84900 Mon Sep 17 00:00:00 2001 From: Johannes Raggam Date: Wed, 7 Dec 2022 13:16:50 +0100 Subject: [PATCH 6/6] yarn install. --- yarn.lock | 36 +----------------------------------- 1 file changed, 1 insertion(+), 35 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0075feb46..b18441ee5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2899,11 +2899,6 @@ before-after-hook@^2.2.0: resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" @@ -3989,11 +3984,6 @@ emoji-regex@^9.2.2: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -6170,13 +6160,6 @@ json-stringify-safe@^5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - json5@^2.2.1: version "2.2.2" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.2.tgz#64471c5bdcc564c18f7c1d4df2e2297f2457c5ab" @@ -6285,15 +6268,6 @@ loader-runner@^4.2.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== -loader-utils@^1.0.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" - integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -6629,7 +6603,7 @@ mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -modernizr@^3.7.1: +modernizr@^3.12.0: version "3.12.0" resolved "https://registry.yarnpkg.com/modernizr/-/modernizr-3.12.0.tgz#38b1aa96eea48d90fe433f2803a8246acd2fefa9" integrity sha512-i5f5xfnxMOb3cePoBpwk4bWjVAyIB3hgm7QrDvZx/R7zUUS8PO9zlyQF7vJKn8kCVxEvL0nRWeZ0PPqVbY31sw== @@ -9100,14 +9074,6 @@ webpack-merge@^5.7.3: clone-deep "^4.0.1" wildcard "^2.0.0" -webpack-modernizr-loader@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webpack-modernizr-loader/-/webpack-modernizr-loader-5.0.0.tgz#6a7c07d3fac4b6e02964ee3be61819cf9ab811cc" - integrity sha512-D+FIZ03QtWNV536+cGp046qbJIcxPYEF0kGqP6YrM8Y1g6PqzXGdx8VYnK7VkfRuBdtqLL5rCerWYk1ncOSjJQ== - dependencies: - loader-utils "^1.0.0" - modernizr "^3.7.1" - webpack-sources@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"