From 0b980381f72f1e9cefef67b61264ed4a36688a30 Mon Sep 17 00:00:00 2001 From: Matt Henkes Date: Wed, 10 Jul 2019 08:05:54 -0500 Subject: [PATCH 1/6] feat: add ignoreOrder flag styles --- README.md | 11 ++++++-- src/index.js | 26 +++++++++-------- test/cases/ignoreOrder/e1.css | 1 + test/cases/ignoreOrder/e2.css | 1 + test/cases/ignoreOrder/expected/styles.css | 4 +++ test/cases/ignoreOrder/index.js | 2 ++ test/cases/ignoreOrder/index2.js | 2 ++ test/cases/ignoreOrder/webpack.config.js | 33 ++++++++++++++++++++++ 8 files changed, 67 insertions(+), 13 deletions(-) create mode 100644 test/cases/ignoreOrder/e1.css create mode 100644 test/cases/ignoreOrder/e2.css create mode 100644 test/cases/ignoreOrder/expected/styles.css create mode 100644 test/cases/ignoreOrder/index.js create mode 100644 test/cases/ignoreOrder/index2.js create mode 100644 test/cases/ignoreOrder/webpack.config.js diff --git a/README.md b/README.md index 74d1d293..ad15240e 100644 --- a/README.md +++ b/README.md @@ -51,9 +51,10 @@ module.exports = { plugins: [ new MiniCssExtractPlugin({ // Options similar to the same options in webpackOptions.output - // both options are optional + // all options are optional filename: '[name].css', chunkFilename: '[id].css', + ignoreOrder: false, // Enable to remove warnings about conflicting order }), ], module: { @@ -358,7 +359,13 @@ For long term caching use `filename: "[contenthash].css"`. Optionally add `[name ### Remove Order Warnings -If the terminal is getting bloated with chunk order warnings. You can filter by configuring [warningsFilter](https://webpack.js.org/configuration/stats/) withing the webpack stats option +For projects where css ordering has been mitigated through consistent use of scoping or naming conventions, the css order warnings can be disabled by setting the ignoreOrder flag to true for the plugin. + +```javascript +new MiniCssExtractPlugin({ + ignoreOrder: true, +}), +``` ### Media Query Plugin diff --git a/src/index.js b/src/index.js index 0451484d..92a6aaa7 100644 --- a/src/index.js +++ b/src/index.js @@ -125,6 +125,7 @@ class MiniCssExtractPlugin { { filename: DEFAULT_FILENAME, moduleFilename: () => options.filename || DEFAULT_FILENAME, + ignoreOrder: false, }, options ); @@ -530,17 +531,20 @@ class MiniCssExtractPlugin { // use list with fewest failed deps // and emit a warning const fallbackModule = bestMatch.pop(); - - compilation.warnings.push( - new Error( - `chunk ${chunk.name || chunk.id} [${pluginName}]\n` + - 'Conflicting order between:\n' + - ` * ${fallbackModule.readableIdentifier(requestShortener)}\n` + - `${bestMatchDeps - .map((m) => ` * ${m.readableIdentifier(requestShortener)}`) - .join('\n')}` - ) - ); + if (!this.options.ignoreOrder) { + compilation.warnings.push( + new Error( + `chunk ${chunk.name || chunk.id} [${pluginName}]\n` + + 'Conflicting order between:\n' + + ` * ${fallbackModule.readableIdentifier( + requestShortener + )}\n` + + `${bestMatchDeps + .map((m) => ` * ${m.readableIdentifier(requestShortener)}`) + .join('\n')}` + ) + ); + } usedModules.add(fallbackModule); } diff --git a/test/cases/ignoreOrder/e1.css b/test/cases/ignoreOrder/e1.css new file mode 100644 index 00000000..9028097f --- /dev/null +++ b/test/cases/ignoreOrder/e1.css @@ -0,0 +1 @@ +body { content: "e1"; } diff --git a/test/cases/ignoreOrder/e2.css b/test/cases/ignoreOrder/e2.css new file mode 100644 index 00000000..af21d863 --- /dev/null +++ b/test/cases/ignoreOrder/e2.css @@ -0,0 +1 @@ +body { content: "e2"; } diff --git a/test/cases/ignoreOrder/expected/styles.css b/test/cases/ignoreOrder/expected/styles.css new file mode 100644 index 00000000..71a84f5a --- /dev/null +++ b/test/cases/ignoreOrder/expected/styles.css @@ -0,0 +1,4 @@ +body { content: "e2"; } + +body { content: "e1"; } + diff --git a/test/cases/ignoreOrder/index.js b/test/cases/ignoreOrder/index.js new file mode 100644 index 00000000..af315736 --- /dev/null +++ b/test/cases/ignoreOrder/index.js @@ -0,0 +1,2 @@ +import './e2.css'; +import './e1.css'; diff --git a/test/cases/ignoreOrder/index2.js b/test/cases/ignoreOrder/index2.js new file mode 100644 index 00000000..05a1cfb5 --- /dev/null +++ b/test/cases/ignoreOrder/index2.js @@ -0,0 +1,2 @@ +import './e1.css'; +import './e2.css'; diff --git a/test/cases/ignoreOrder/webpack.config.js b/test/cases/ignoreOrder/webpack.config.js new file mode 100644 index 00000000..715f9615 --- /dev/null +++ b/test/cases/ignoreOrder/webpack.config.js @@ -0,0 +1,33 @@ +import Self from '../../../src'; + +module.exports = { + entry: { + entry1: './index.js', + entry2: './index2.js', + }, + module: { + rules: [ + { + test: /\.css$/, + use: [Self.loader, 'css-loader'], + }, + ], + }, + optimization: { + splitChunks: { + cacheGroups: { + styles: { + name: 'styles', + chunks: 'all', + test: /\.css$/, + enforce: true, + }, + }, + }, + }, + plugins: [ + new Self({ + ignoreOrder: true, + }), + ], +}; From e11f3d572ce4190a6c919425db28d4a889f4134b Mon Sep 17 00:00:00 2001 From: Matt Henkes Date: Mon, 15 Jul 2019 08:32:10 -0500 Subject: [PATCH 2/6] feat: add ignoreOrder False test --- test/cases/ignoreOrderFalse/e1.css | 1 + test/cases/ignoreOrderFalse/e2.css | 1 + .../ignoreOrderFalse/expected/styles.css | 4 +++ test/cases/ignoreOrderFalse/index.js | 2 ++ test/cases/ignoreOrderFalse/index2.js | 2 ++ test/cases/ignoreOrderFalse/webpack.config.js | 33 +++++++++++++++++++ 6 files changed, 43 insertions(+) create mode 100644 test/cases/ignoreOrderFalse/e1.css create mode 100644 test/cases/ignoreOrderFalse/e2.css create mode 100644 test/cases/ignoreOrderFalse/expected/styles.css create mode 100644 test/cases/ignoreOrderFalse/index.js create mode 100644 test/cases/ignoreOrderFalse/index2.js create mode 100644 test/cases/ignoreOrderFalse/webpack.config.js diff --git a/test/cases/ignoreOrderFalse/e1.css b/test/cases/ignoreOrderFalse/e1.css new file mode 100644 index 00000000..9028097f --- /dev/null +++ b/test/cases/ignoreOrderFalse/e1.css @@ -0,0 +1 @@ +body { content: "e1"; } diff --git a/test/cases/ignoreOrderFalse/e2.css b/test/cases/ignoreOrderFalse/e2.css new file mode 100644 index 00000000..af21d863 --- /dev/null +++ b/test/cases/ignoreOrderFalse/e2.css @@ -0,0 +1 @@ +body { content: "e2"; } diff --git a/test/cases/ignoreOrderFalse/expected/styles.css b/test/cases/ignoreOrderFalse/expected/styles.css new file mode 100644 index 00000000..71a84f5a --- /dev/null +++ b/test/cases/ignoreOrderFalse/expected/styles.css @@ -0,0 +1,4 @@ +body { content: "e2"; } + +body { content: "e1"; } + diff --git a/test/cases/ignoreOrderFalse/index.js b/test/cases/ignoreOrderFalse/index.js new file mode 100644 index 00000000..af315736 --- /dev/null +++ b/test/cases/ignoreOrderFalse/index.js @@ -0,0 +1,2 @@ +import './e2.css'; +import './e1.css'; diff --git a/test/cases/ignoreOrderFalse/index2.js b/test/cases/ignoreOrderFalse/index2.js new file mode 100644 index 00000000..05a1cfb5 --- /dev/null +++ b/test/cases/ignoreOrderFalse/index2.js @@ -0,0 +1,2 @@ +import './e1.css'; +import './e2.css'; diff --git a/test/cases/ignoreOrderFalse/webpack.config.js b/test/cases/ignoreOrderFalse/webpack.config.js new file mode 100644 index 00000000..9fdc7de0 --- /dev/null +++ b/test/cases/ignoreOrderFalse/webpack.config.js @@ -0,0 +1,33 @@ +import Self from '../../../src'; + +module.exports = { + entry: { + entry1: './index.js', + entry2: './index2.js', + }, + module: { + rules: [ + { + test: /\.css$/, + use: [Self.loader, 'css-loader'], + }, + ], + }, + optimization: { + splitChunks: { + cacheGroups: { + styles: { + name: 'styles', + chunks: 'all', + test: /\.css$/, + enforce: true, + }, + }, + }, + }, + plugins: [ + new Self({ + ignoreOrder: false, + }), + ], +}; From 78e6c8fab1eb8c6f062c9bd384336fe6dafbed0c Mon Sep 17 00:00:00 2001 From: Matt Henkes Date: Mon, 15 Jul 2019 08:41:21 -0500 Subject: [PATCH 3/6] feat: update package-lock --- package-lock.json | 241 +++++++++++++++++++++++++++------------------- 1 file changed, 142 insertions(+), 99 deletions(-) diff --git a/package-lock.json b/package-lock.json index f00d43cc..75be00e7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5659,24 +5659,28 @@ "dependencies": { "abbrev": { "version": "1.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true, "optional": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "aproba": { "version": "1.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "dev": true, "optional": true, "requires": { @@ -5686,12 +5690,14 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "brace-expansion": { "version": "1.1.11", - "bundled": true, + "resolved": false, + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { "balanced-match": "^1.0.0", @@ -5700,34 +5706,40 @@ }, "chownr": { "version": "1.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "concat-map": { "version": "0.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true }, "core-util-is": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true, "optional": true }, "debug": { "version": "4.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "optional": true, "requires": { @@ -5736,25 +5748,29 @@ }, "deep-extend": { "version": "0.6.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, "optional": true }, "delegates": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true, "optional": true }, "detect-libc": { "version": "1.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "dev": true, "optional": true }, "fs-minipass": { "version": "1.2.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "dev": true, "optional": true, "requires": { @@ -5763,13 +5779,15 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true, "optional": true }, "gauge": { "version": "2.7.4", - "bundled": true, + "resolved": false, + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "optional": true, "requires": { @@ -5785,7 +5803,8 @@ }, "glob": { "version": "7.1.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "optional": true, "requires": { @@ -5799,13 +5818,15 @@ }, "has-unicode": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true, "optional": true }, "iconv-lite": { "version": "0.4.24", - "bundled": true, + "resolved": false, + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "optional": true, "requires": { @@ -5814,7 +5835,8 @@ }, "ignore-walk": { "version": "3.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "dev": true, "optional": true, "requires": { @@ -5823,7 +5845,8 @@ }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": false, + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "optional": true, "requires": { @@ -5833,18 +5856,21 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "ini": { "version": "1.3.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { "number-is-nan": "^1.0.0" @@ -5852,13 +5878,15 @@ }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true, "optional": true }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { "brace-expansion": "^1.1.7" @@ -5866,12 +5894,14 @@ }, "minimist": { "version": "0.0.8", - "bundled": true, + "resolved": false, + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "minipass": { "version": "2.3.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", "dev": true, "requires": { "safe-buffer": "^5.1.2", @@ -5880,7 +5910,8 @@ }, "minizlib": { "version": "1.2.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", "dev": true, "optional": true, "requires": { @@ -5889,7 +5920,8 @@ }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { "minimist": "0.0.8" @@ -5897,13 +5929,15 @@ }, "ms": { "version": "2.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true, "optional": true }, "needle": { "version": "2.3.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==", "dev": true, "optional": true, "requires": { @@ -5914,7 +5948,8 @@ }, "node-pre-gyp": { "version": "0.12.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==", "dev": true, "optional": true, "requires": { @@ -5932,7 +5967,8 @@ }, "nopt": { "version": "4.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "dev": true, "optional": true, "requires": { @@ -5942,13 +5978,15 @@ }, "npm-bundled": { "version": "1.0.6", - "bundled": true, + "resolved": false, + "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==", "dev": true, "optional": true }, "npm-packlist": { "version": "1.4.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==", "dev": true, "optional": true, "requires": { @@ -5958,7 +5996,8 @@ }, "npmlog": { "version": "4.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "optional": true, "requires": { @@ -5970,18 +6009,21 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true, "optional": true }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { "wrappy": "1" @@ -5989,19 +6031,22 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true, "optional": true }, "osenv": { "version": "0.1.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "optional": true, "requires": { @@ -6011,19 +6056,22 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true, "optional": true }, "process-nextick-args": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "dev": true, "optional": true }, "rc": { "version": "1.2.8", - "bundled": true, + "resolved": false, + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "optional": true, "requires": { @@ -6035,7 +6083,8 @@ "dependencies": { "minimist": { "version": "1.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true, "optional": true } @@ -6043,7 +6092,8 @@ }, "readable-stream": { "version": "2.3.6", - "bundled": true, + "resolved": false, + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "optional": true, "requires": { @@ -6058,7 +6108,8 @@ }, "rimraf": { "version": "2.6.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "optional": true, "requires": { @@ -6067,42 +6118,49 @@ }, "safe-buffer": { "version": "5.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "safer-buffer": { "version": "2.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true, "optional": true }, "sax": { "version": "1.2.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true, "optional": true }, "semver": { "version": "5.7.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true, "optional": true }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { "code-point-at": "^1.0.0", @@ -6112,7 +6170,8 @@ }, "string_decoder": { "version": "1.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "optional": true, "requires": { @@ -6121,7 +6180,8 @@ }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { "ansi-regex": "^2.0.0" @@ -6129,13 +6189,15 @@ }, "strip-json-comments": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true, "optional": true }, "tar": { "version": "4.4.8", - "bundled": true, + "resolved": false, + "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", "dev": true, "optional": true, "requires": { @@ -6150,13 +6212,15 @@ }, "util-deprecate": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true, "optional": true }, "wide-align": { "version": "1.1.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "optional": true, "requires": { @@ -6165,12 +6229,14 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "yallist": { "version": "3.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", "dev": true } } @@ -9211,9 +9277,9 @@ } }, "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, "requires": { "for-in": "^1.0.2", @@ -11110,9 +11176,9 @@ "dev": true }, "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "requires": { "extend-shallow": "^2.0.1", @@ -12500,38 +12566,15 @@ "dev": true }, "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } + "set-value": "^2.0.1" } }, "uniq": { From 98de7b43f54a8db4c06bafa4bf7852e11ba81895 Mon Sep 17 00:00:00 2001 From: Matt Henkes Date: Mon, 15 Jul 2019 09:48:29 -0500 Subject: [PATCH 4/6] feat: moar tests --- test/IgnoreOrder.test.js | 44 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 test/IgnoreOrder.test.js diff --git a/test/IgnoreOrder.test.js b/test/IgnoreOrder.test.js new file mode 100644 index 00000000..1d64dc53 --- /dev/null +++ b/test/IgnoreOrder.test.js @@ -0,0 +1,44 @@ +import path from 'path'; +import webpack from 'webpack'; + +describe('IgnoreOrder', () => { + it('should emit errors', (done) => { + const casesDirectory = path.resolve(__dirname, 'cases'); + const directoryForCase = path.resolve(casesDirectory, 'ignoreOrderFalse'); + // eslint-disable-next-line import/no-dynamic-require, global-require + const webpackConfig = require(path.resolve( + directoryForCase, + 'webpack.config.js' + )); + const compiler = webpack({ + ...webpackConfig, + mode: 'development', + context: directoryForCase, + cache: false, + }); + compiler.run((err1, stats) => { + expect(stats.hasWarnings()).toBeTruthy(); + done(); + }); + }); + + it('should not emit errors', (done) => { + const casesDirectory = path.resolve(__dirname, 'cases'); + const directoryForCase = path.resolve(casesDirectory, 'ignoreOrder'); + // eslint-disable-next-line import/no-dynamic-require, global-require + const webpackConfig = require(path.resolve( + directoryForCase, + 'webpack.config.js' + )); + const compiler = webpack({ + ...webpackConfig, + mode: 'development', + context: directoryForCase, + cache: false, + }); + compiler.run((err1, stats) => { + expect(stats.hasWarnings()).toBeFalsy(); + done(); + }); + }); +}); From e6aa3f64eaa2a99b74b95522d39e5654686b61ec Mon Sep 17 00:00:00 2001 From: Matt Henkes Date: Mon, 15 Jul 2019 09:50:09 -0500 Subject: [PATCH 5/6] feat: text change --- test/IgnoreOrder.test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/IgnoreOrder.test.js b/test/IgnoreOrder.test.js index 1d64dc53..a5714554 100644 --- a/test/IgnoreOrder.test.js +++ b/test/IgnoreOrder.test.js @@ -2,7 +2,7 @@ import path from 'path'; import webpack from 'webpack'; describe('IgnoreOrder', () => { - it('should emit errors', (done) => { + it('should emit warnings', (done) => { const casesDirectory = path.resolve(__dirname, 'cases'); const directoryForCase = path.resolve(casesDirectory, 'ignoreOrderFalse'); // eslint-disable-next-line import/no-dynamic-require, global-require @@ -22,7 +22,7 @@ describe('IgnoreOrder', () => { }); }); - it('should not emit errors', (done) => { + it('should not emit warnings', (done) => { const casesDirectory = path.resolve(__dirname, 'cases'); const directoryForCase = path.resolve(casesDirectory, 'ignoreOrder'); // eslint-disable-next-line import/no-dynamic-require, global-require From f5e23e85b8e4753989a0461079c336bfb779cb3b Mon Sep 17 00:00:00 2001 From: Matt Henkes Date: Mon, 15 Jul 2019 10:03:14 -0500 Subject: [PATCH 6/6] feat: review updates --- test/{IgnoreOrder.test.js => ignoreOrder-option.test.js} | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) rename test/{IgnoreOrder.test.js => ignoreOrder-option.test.js} (92%) diff --git a/test/IgnoreOrder.test.js b/test/ignoreOrder-option.test.js similarity index 92% rename from test/IgnoreOrder.test.js rename to test/ignoreOrder-option.test.js index a5714554..6cd86f0e 100644 --- a/test/IgnoreOrder.test.js +++ b/test/ignoreOrder-option.test.js @@ -1,4 +1,5 @@ import path from 'path'; + import webpack from 'webpack'; describe('IgnoreOrder', () => { @@ -17,7 +18,7 @@ describe('IgnoreOrder', () => { cache: false, }); compiler.run((err1, stats) => { - expect(stats.hasWarnings()).toBeTruthy(); + expect(stats.hasWarnings()).toBe(true); done(); }); }); @@ -37,7 +38,7 @@ describe('IgnoreOrder', () => { cache: false, }); compiler.run((err1, stats) => { - expect(stats.hasWarnings()).toBeFalsy(); + expect(stats.hasWarnings()).toBe(false); done(); }); });