From 4c5d86819215a9c5a73de83fbb9f333fea41564e Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Sat, 9 Oct 2021 15:11:51 +0300 Subject: [PATCH 1/3] fix: classes generation for client and server bundling --- src/utils.js | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/src/utils.js b/src/utils.js index 0d9d5a20..6a7a29ca 100644 --- a/src/utils.js +++ b/src/utils.js @@ -317,25 +317,15 @@ function defaultGetLocalIdent( localName, options ) { - let relativeMatchResource = ""; - - const { context, hashSalt } = options; + const { context } = options; const { resourcePath } = loaderContext; - // eslint-disable-next-line no-underscore-dangle - if (loaderContext._module && loaderContext._module.matchResource) { - relativeMatchResource = `${normalizePath( - // eslint-disable-next-line no-underscore-dangle - path.relative(context, loaderContext._module.matchResource) - )}\x00`; - } - const relativeResourcePath = normalizePath( path.relative(context, resourcePath) ); // eslint-disable-next-line no-param-reassign - options.content = `${relativeMatchResource}${relativeResourcePath}\x00${localName}`; + options.content = `${relativeResourcePath}\x00${localName}`; let { hashFunction, hashDigest, hashDigestLength } = options; const matches = localIdentName.match( From e05a289407819139ecc97da2923843d1b0c44b36 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Sat, 9 Oct 2021 15:17:55 +0300 Subject: [PATCH 2/3] fix: classes generation for client and server bundling --- .../__snapshots__/modules-option.test.js.snap | 171 ++++++++++++++++++ test/modules-option.test.js | 68 +++++++ 2 files changed, 239 insertions(+) diff --git a/test/__snapshots__/modules-option.test.js.snap b/test/__snapshots__/modules-option.test.js.snap index dcd1d6a5..8d476dca 100644 --- a/test/__snapshots__/modules-option.test.js.snap +++ b/test/__snapshots__/modules-option.test.js.snap @@ -1979,6 +1979,177 @@ Array [ exports[`"modules" option should work and correctly replace escaped symbols: warnings 1`] = `Array []`; +exports[`"modules" option should work and generate the same classes for client and server: client errors 1`] = `Array []`; + +exports[`"modules" option should work and generate the same classes for client and server: client module 1`] = ` +"// extracted by mini-css-extract-plugin +export default {\\"123\\":\\"_Oc_nRVO4GQ7K00YULUr\\",\\"test\\":\\"HovVWrUTjN5P06AwS5hN\\",\\"_test\\":\\"_1mLQ0KYr3ydD9bSOOL1\\",\\"className\\":\\"MMk_yFMICywUeqR0iepY\\",\\"someId\\":\\"f_mZz_4mbpipziaiwoW7\\",\\"subClass\\":\\"FYyIWexDGlFG5gXl93Xj\\",\\"-a0-34a___f\\":\\"r_hifewiIojngzs4DOcu\\",\\"m_x_@\\":\\"yUrnJ_pW2ADLHyYLqUNl\\",\\"B&W?\\":\\"O_Xkei1DAX2qh34wT83c\\",\\":\`(\\":\\"_rpCeu5pHk92Z3qzqY_z\\",\\"1a2b3c\\":\\"mxXeAFeh5Mboa3cSbvJV\\",\\"#fake-id\\":\\"_92k79k_uZJspC9mIPTv\\",\\"-a-b-c-\\":\\"c0kkJWClscbZOtfilBcE\\",\\"©\\":\\"DLosMLOukp7Tp4hO7jL0\\",\\"♥\\":\\"HQMfjUZeec5zWyS66OmG\\",\\"“‘’”\\":\\"bS0LrUqKBV4iaTBAKsMY\\",\\"☺☃\\":\\"F0_yWUDvkyhteJA00zkw\\",\\"⌘⌥\\":\\"VyeHlHnBWZuQCsFzscUO\\",\\"𝄞♪♩♫♬\\":\\"Qi7pfuLhD35O0Cedn4XB\\",\\"💩\\":\\"CjG3lWNhvVCcm5R6oxYM\\",\\"?\\":\\"heeATAtrwLqLPvwgoctG\\",\\"@\\":\\"YofbbuSihGYM9Du0fcYK\\",\\".\\":\\"_29WwWt8JVmDYN7Z_26q\\",\\":)\\":\\"I_4AeARK9lm4N7TVyuAb\\",\\"

\\":\\"KBVLvvCBhxVgvzXe27HR\\",\\"<><<<>><>\\":\\"vOWmh2fN7CCzZsQKNPLz\\",\\"++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\":\\"_D32kH5S0xGxuC7YOC_W\\",\\"#\\":\\"LpBEGYchm65LG8_V9AYi\\",\\"##\\":\\"wZKDT2QRg1jShfVg3_E4\\",\\"#.#.#\\":\\"oGI7_ChvpMbDAwYUoeH1\\",\\"_\\":\\"myeULb2GLN5e3KYA4yxA\\",\\"{}\\":\\"Mae71ybFnDtrq6WgUsIc\\",\\"foo.bar\\":\\"TpLCT2g4E__O5IMrfhLJ\\",\\":hover\\":\\"l6Av_vs8d_tfpiyTm4bl\\",\\":hover:focus:active\\":\\"ZGmd9HMc_iPx6487LarY\\",\\"[attr=value]\\":\\"KPlJewNi3KC23yxaC_Se\\",\\"f/o/o\\":\\"DIrFdFnBQ9zTR508DSWD\\",\\"f\\\\\\\\o\\\\\\\\o\\":\\"H1knt1tAX5P0sDfLK_9n\\",\\"f*o*o\\":\\"_vAKu2IlrR_fciB3Sosm\\",\\"f!o!o\\":\\"APY_BKpa8G_34n1qfebn\\",\\"f'o'o\\":\\"jTuAkufdKA9r5gtN7Tkc\\",\\"f~o~o\\":\\"S4VvFBeH35ONqPvY3XAy\\",\\"f+o+o\\":\\"AWIsfyEkWwVCslashhSx\\",\\"foo/bar\\":\\"DhIde1WbgzO_4SPrpPoE\\",\\"foo\\\\\\\\bar\\":\\"aeKkgCs_2D8eu6BLa0Ea\\",\\"foo/bar/baz\\":\\"QFT18bFiHRmL7zKaOBRZ\\",\\"foo\\\\\\\\bar\\\\\\\\baz\\":\\"uM3RYQs79zwACaTJ3vBh\\"};" +`; + +exports[`"modules" option should work and generate the same classes for client and server: client result 1`] = ` +Object { + "#": "LpBEGYchm65LG8_V9AYi", + "##": "wZKDT2QRg1jShfVg3_E4", + "#.#.#": "oGI7_ChvpMbDAwYUoeH1", + "#fake-id": "_92k79k_uZJspC9mIPTv", + "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.": "_D32kH5S0xGxuC7YOC_W", + "-a-b-c-": "c0kkJWClscbZOtfilBcE", + "-a0-34a___f": "r_hifewiIojngzs4DOcu", + ".": "_29WwWt8JVmDYN7Z_26q", + "123": "_Oc_nRVO4GQ7K00YULUr", + "1a2b3c": "mxXeAFeh5Mboa3cSbvJV", + ":)": "I_4AeARK9lm4N7TVyuAb", + ":\`(": "_rpCeu5pHk92Z3qzqY_z", + ":hover": "l6Av_vs8d_tfpiyTm4bl", + ":hover:focus:active": "ZGmd9HMc_iPx6487LarY", + "<><<<>><>": "vOWmh2fN7CCzZsQKNPLz", + "

": "KBVLvvCBhxVgvzXe27HR", + "?": "heeATAtrwLqLPvwgoctG", + "@": "YofbbuSihGYM9Du0fcYK", + "B&W?": "O_Xkei1DAX2qh34wT83c", + "[attr=value]": "KPlJewNi3KC23yxaC_Se", + "_": "myeULb2GLN5e3KYA4yxA", + "_test": "_1mLQ0KYr3ydD9bSOOL1", + "className": "MMk_yFMICywUeqR0iepY", + "f!o!o": "APY_BKpa8G_34n1qfebn", + "f'o'o": "jTuAkufdKA9r5gtN7Tkc", + "f*o*o": "_vAKu2IlrR_fciB3Sosm", + "f+o+o": "AWIsfyEkWwVCslashhSx", + "f/o/o": "DIrFdFnBQ9zTR508DSWD", + "f\\\\o\\\\o": "H1knt1tAX5P0sDfLK_9n", + "foo.bar": "TpLCT2g4E__O5IMrfhLJ", + "foo/bar": "DhIde1WbgzO_4SPrpPoE", + "foo/bar/baz": "QFT18bFiHRmL7zKaOBRZ", + "foo\\\\bar": "aeKkgCs_2D8eu6BLa0Ea", + "foo\\\\bar\\\\baz": "uM3RYQs79zwACaTJ3vBh", + "f~o~o": "S4VvFBeH35ONqPvY3XAy", + "m_x_@": "yUrnJ_pW2ADLHyYLqUNl", + "someId": "f_mZz_4mbpipziaiwoW7", + "subClass": "FYyIWexDGlFG5gXl93Xj", + "test": "HovVWrUTjN5P06AwS5hN", + "{}": "Mae71ybFnDtrq6WgUsIc", + "©": "DLosMLOukp7Tp4hO7jL0", + "“‘’”": "bS0LrUqKBV4iaTBAKsMY", + "⌘⌥": "VyeHlHnBWZuQCsFzscUO", + "☺☃": "F0_yWUDvkyhteJA00zkw", + "♥": "HQMfjUZeec5zWyS66OmG", + "𝄞♪♩♫♬": "Qi7pfuLhD35O0Cedn4XB", + "💩": "CjG3lWNhvVCcm5R6oxYM", +} +`; + +exports[`"modules" option should work and generate the same classes for client and server: client warnings 1`] = `Array []`; + +exports[`"modules" option should work and generate the same classes for client and server: server errors 1`] = `Array []`; + +exports[`"modules" option should work and generate the same classes for client and server: server module 1`] = ` +"// Exports +export default { + \\"123\\": \\"_Oc_nRVO4GQ7K00YULUr\\", + \\"test\\": \\"HovVWrUTjN5P06AwS5hN\\", + \\"_test\\": \\"_1mLQ0KYr3ydD9bSOOL1\\", + \\"className\\": \\"MMk_yFMICywUeqR0iepY\\", + \\"someId\\": \\"f_mZz_4mbpipziaiwoW7\\", + \\"subClass\\": \\"FYyIWexDGlFG5gXl93Xj\\", + \\"-a0-34a___f\\": \\"r_hifewiIojngzs4DOcu\\", + \\"m_x_@\\": \\"yUrnJ_pW2ADLHyYLqUNl\\", + \\"B&W?\\": \\"O_Xkei1DAX2qh34wT83c\\", + \\":\`(\\": \\"_rpCeu5pHk92Z3qzqY_z\\", + \\"1a2b3c\\": \\"mxXeAFeh5Mboa3cSbvJV\\", + \\"#fake-id\\": \\"_92k79k_uZJspC9mIPTv\\", + \\"-a-b-c-\\": \\"c0kkJWClscbZOtfilBcE\\", + \\"©\\": \\"DLosMLOukp7Tp4hO7jL0\\", + \\"♥\\": \\"HQMfjUZeec5zWyS66OmG\\", + \\"“‘’”\\": \\"bS0LrUqKBV4iaTBAKsMY\\", + \\"☺☃\\": \\"F0_yWUDvkyhteJA00zkw\\", + \\"⌘⌥\\": \\"VyeHlHnBWZuQCsFzscUO\\", + \\"𝄞♪♩♫♬\\": \\"Qi7pfuLhD35O0Cedn4XB\\", + \\"💩\\": \\"CjG3lWNhvVCcm5R6oxYM\\", + \\"?\\": \\"heeATAtrwLqLPvwgoctG\\", + \\"@\\": \\"YofbbuSihGYM9Du0fcYK\\", + \\".\\": \\"_29WwWt8JVmDYN7Z_26q\\", + \\":)\\": \\"I_4AeARK9lm4N7TVyuAb\\", + \\"

\\": \\"KBVLvvCBhxVgvzXe27HR\\", + \\"<><<<>><>\\": \\"vOWmh2fN7CCzZsQKNPLz\\", + \\"++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\": \\"_D32kH5S0xGxuC7YOC_W\\", + \\"#\\": \\"LpBEGYchm65LG8_V9AYi\\", + \\"##\\": \\"wZKDT2QRg1jShfVg3_E4\\", + \\"#.#.#\\": \\"oGI7_ChvpMbDAwYUoeH1\\", + \\"_\\": \\"myeULb2GLN5e3KYA4yxA\\", + \\"{}\\": \\"Mae71ybFnDtrq6WgUsIc\\", + \\"foo.bar\\": \\"TpLCT2g4E__O5IMrfhLJ\\", + \\":hover\\": \\"l6Av_vs8d_tfpiyTm4bl\\", + \\":hover:focus:active\\": \\"ZGmd9HMc_iPx6487LarY\\", + \\"[attr=value]\\": \\"KPlJewNi3KC23yxaC_Se\\", + \\"f/o/o\\": \\"DIrFdFnBQ9zTR508DSWD\\", + \\"f\\\\\\\\o\\\\\\\\o\\": \\"H1knt1tAX5P0sDfLK_9n\\", + \\"f*o*o\\": \\"_vAKu2IlrR_fciB3Sosm\\", + \\"f!o!o\\": \\"APY_BKpa8G_34n1qfebn\\", + \\"f'o'o\\": \\"jTuAkufdKA9r5gtN7Tkc\\", + \\"f~o~o\\": \\"S4VvFBeH35ONqPvY3XAy\\", + \\"f+o+o\\": \\"AWIsfyEkWwVCslashhSx\\", + \\"foo/bar\\": \\"DhIde1WbgzO_4SPrpPoE\\", + \\"foo\\\\\\\\bar\\": \\"aeKkgCs_2D8eu6BLa0Ea\\", + \\"foo/bar/baz\\": \\"QFT18bFiHRmL7zKaOBRZ\\", + \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"uM3RYQs79zwACaTJ3vBh\\" +}; +" +`; + +exports[`"modules" option should work and generate the same classes for client and server: server result 1`] = ` +Object { + "#": "LpBEGYchm65LG8_V9AYi", + "##": "wZKDT2QRg1jShfVg3_E4", + "#.#.#": "oGI7_ChvpMbDAwYUoeH1", + "#fake-id": "_92k79k_uZJspC9mIPTv", + "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.": "_D32kH5S0xGxuC7YOC_W", + "-a-b-c-": "c0kkJWClscbZOtfilBcE", + "-a0-34a___f": "r_hifewiIojngzs4DOcu", + ".": "_29WwWt8JVmDYN7Z_26q", + "123": "_Oc_nRVO4GQ7K00YULUr", + "1a2b3c": "mxXeAFeh5Mboa3cSbvJV", + ":)": "I_4AeARK9lm4N7TVyuAb", + ":\`(": "_rpCeu5pHk92Z3qzqY_z", + ":hover": "l6Av_vs8d_tfpiyTm4bl", + ":hover:focus:active": "ZGmd9HMc_iPx6487LarY", + "<><<<>><>": "vOWmh2fN7CCzZsQKNPLz", + "

": "KBVLvvCBhxVgvzXe27HR", + "?": "heeATAtrwLqLPvwgoctG", + "@": "YofbbuSihGYM9Du0fcYK", + "B&W?": "O_Xkei1DAX2qh34wT83c", + "[attr=value]": "KPlJewNi3KC23yxaC_Se", + "_": "myeULb2GLN5e3KYA4yxA", + "_test": "_1mLQ0KYr3ydD9bSOOL1", + "className": "MMk_yFMICywUeqR0iepY", + "f!o!o": "APY_BKpa8G_34n1qfebn", + "f'o'o": "jTuAkufdKA9r5gtN7Tkc", + "f*o*o": "_vAKu2IlrR_fciB3Sosm", + "f+o+o": "AWIsfyEkWwVCslashhSx", + "f/o/o": "DIrFdFnBQ9zTR508DSWD", + "f\\\\o\\\\o": "H1knt1tAX5P0sDfLK_9n", + "foo.bar": "TpLCT2g4E__O5IMrfhLJ", + "foo/bar": "DhIde1WbgzO_4SPrpPoE", + "foo/bar/baz": "QFT18bFiHRmL7zKaOBRZ", + "foo\\\\bar": "aeKkgCs_2D8eu6BLa0Ea", + "foo\\\\bar\\\\baz": "uM3RYQs79zwACaTJ3vBh", + "f~o~o": "S4VvFBeH35ONqPvY3XAy", + "m_x_@": "yUrnJ_pW2ADLHyYLqUNl", + "someId": "f_mZz_4mbpipziaiwoW7", + "subClass": "FYyIWexDGlFG5gXl93Xj", + "test": "HovVWrUTjN5P06AwS5hN", + "{}": "Mae71ybFnDtrq6WgUsIc", + "©": "DLosMLOukp7Tp4hO7jL0", + "“‘’”": "bS0LrUqKBV4iaTBAKsMY", + "⌘⌥": "VyeHlHnBWZuQCsFzscUO", + "☺☃": "F0_yWUDvkyhteJA00zkw", + "♥": "HQMfjUZeec5zWyS66OmG", + "𝄞♪♩♫♬": "Qi7pfuLhD35O0Cedn4XB", + "💩": "CjG3lWNhvVCcm5R6oxYM", +} +`; + +exports[`"modules" option should work and generate the same classes for client and server: server warnings 1`] = `Array []`; + exports[`"modules" option should work and has "undefined" context if no context was given: errors 1`] = `Array []`; exports[`"modules" option should work and has "undefined" context if no context was given: module 1`] = ` diff --git a/test/modules-option.test.js b/test/modules-option.test.js index 2308be5c..9cca27ee 100644 --- a/test/modules-option.test.js +++ b/test/modules-option.test.js @@ -2132,4 +2132,72 @@ describe('"modules" option', () => { expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); + + it("should work and generate the same classes for client and server", async () => { + const clientCompiler = getCompiler( + "./modules/localIdentName/localIdentName.js", + {}, + { + module: { + rules: [ + { + test: /\.css$/i, + use: [ + { + loader: MiniCssExtractPlugin.loader, + }, + { + loader: path.resolve(__dirname, "../src"), + options: { + modules: true, + }, + }, + ], + }, + ], + }, + plugins: [ + new MiniCssExtractPlugin({ + filename: "[name].css", + chunkFilename: "[id].css", + }), + ], + } + ); + const clientStats = await compile(clientCompiler); + + expect( + getModuleSource( + "./modules/localIdentName/localIdentName.css", + clientStats + ) + ).toMatchSnapshot("client module"); + expect( + getExecutedCode("main.bundle.js", clientCompiler, clientStats) + ).toMatchSnapshot("client result"); + expect(getWarnings(clientStats)).toMatchSnapshot("client warnings"); + expect(getErrors(clientStats)).toMatchSnapshot("client errors"); + + const serverCompiler = getCompiler( + "./modules/localIdentName/localIdentName.js", + { + modules: { + exportOnlyLocals: true, + }, + } + ); + const serverStats = await compile(serverCompiler); + + expect( + getModuleSource( + "./modules/localIdentName/localIdentName.css", + serverStats + ) + ).toMatchSnapshot("server module"); + expect( + getExecutedCode("main.bundle.js", serverCompiler, serverStats) + ).toMatchSnapshot("server result"); + expect(getWarnings(serverStats)).toMatchSnapshot("server warnings"); + expect(getErrors(serverStats)).toMatchSnapshot("server errors"); + }); }); From b2f7194c646b436d4a94f012ab9bb869427ff9a0 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Sat, 9 Oct 2021 15:28:24 +0300 Subject: [PATCH 3/3] test: update --- src/utils.js | 7 +- test/__snapshots__/loader.test.js.snap | 30 +- .../__snapshots__/modules-option.test.js.snap | 298 +++++++++--------- 3 files changed, 168 insertions(+), 167 deletions(-) diff --git a/src/utils.js b/src/utils.js index 6a7a29ca..887d3b24 100644 --- a/src/utils.js +++ b/src/utils.js @@ -317,9 +317,8 @@ function defaultGetLocalIdent( localName, options ) { - const { context } = options; + const { context, hashSalt } = options; const { resourcePath } = loaderContext; - const relativeResourcePath = normalizePath( path.relative(context, resourcePath) ); @@ -350,6 +349,7 @@ function defaultGetLocalIdent( } let localIdentHash = ""; + for (let tier = 0; localIdentHash.length < hashDigestLength; tier++) { // eslint-disable-next-line no-underscore-dangle const hash = loaderContext._compiler.webpack.util.createHash(hashFunction); @@ -359,9 +359,10 @@ function defaultGetLocalIdent( } const tierSalt = Buffer.allocUnsafe(4); + tierSalt.writeUInt32LE(tier); - hash.update(tierSalt); + hash.update(tierSalt); hash.update(options.content); localIdentHash = (localIdentHash + hash.digest(hashDigest)) diff --git a/test/__snapshots__/loader.test.js.snap b/test/__snapshots__/loader.test.js.snap index 9978085f..92ca8190 100644 --- a/test/__snapshots__/loader.test.js.snap +++ b/test/__snapshots__/loader.test.js.snap @@ -849,66 +849,66 @@ exports[`loader should work with inline module syntax: result 1`] = ` Array [ Array [ "other.modules.css!=!../../src/index.js??ruleSet[1].rules[0].rules[0]!../../node_modules/sass-loader/dist/cjs.js!./index-loader-syntax.modules.css", - ".cvQZFnfbeskbGiTlpe_P { + ".L34UCpsDMDUf5cci5FTp { color: red; } -.IB7LbbTxdNwrVPxtK0wC { +.cR0dzE36E911coHAsfAF { color: white; }", "", ], Array [ "button.modules.css!=!./index-loader-syntax-sass.css", - ".rZ5eCb_mQRy7Svv7Z30B { + ".Bm6FV6LbXUxAkIaBjl7y { width: 5px; }", "", ], Array [ "other.modules.scss!=!../../src/index.js??ruleSet[1].rules[0].rules[0]!../../node_modules/sass-loader/dist/cjs.js!./index-loader-syntax-sass.modules.css", - ".jLbxv4bqH2U20AlFuk92 > .ob3rZ9N1zVzUcOOazzYy { + ".JkECLtXaeLgZptjLMVOV > .cg9Qb_Gz48g_sQh4Pjap { color: red; }", "", ], Array [ "other.modules.css!=!../../src/index.js??ruleSet[1].rules[0].rules[0]!../../node_modules/sass-loader/dist/cjs.js!./my-inline-loader/index.js!./index-loader-syntax.modules.css", - ".cvQZFnfbeskbGiTlpe_P { + ".L34UCpsDMDUf5cci5FTp { color: red; } -.IB7LbbTxdNwrVPxtK0wC { +.cR0dzE36E911coHAsfAF { color: white; } -.x0ncp2H8kJ59binDkEa9 { +.BBGEY4nuDapXZ5Z5Llcd { from: custom; }", "", ], Array [ "other.modules.css!=!../../src/index.js??ruleSet[1].rules[0].rules[0]!../../node_modules/sass-loader/dist/cjs.js!./my-inline-loader/index.js!./index-loader-syntax.modules.css", - ".cvQZFnfbeskbGiTlpe_P { + ".L34UCpsDMDUf5cci5FTp { color: red; } -.IB7LbbTxdNwrVPxtK0wC { +.cR0dzE36E911coHAsfAF { color: white; } -.x0ncp2H8kJ59binDkEa9 { +.BBGEY4nuDapXZ5Z5Llcd { from: custom; }", "", ], Array [ "other.modules.scss!=!../../src/index.js??ruleSet[1].rules[0].rules[0]!../../node_modules/sass-loader/dist/cjs.js!./my-inline-loader/index.js!./index-loader-syntax-sass.modules.css", - ".jLbxv4bqH2U20AlFuk92 > .ob3rZ9N1zVzUcOOazzYy { + ".JkECLtXaeLgZptjLMVOV > .cg9Qb_Gz48g_sQh4Pjap { color: red; } -.yx69bmS9wijyDV84NXI9 { +.WJ9UGZwK6YvLQsxARKO1 { from: custom; }", "", @@ -922,21 +922,21 @@ Array [ ], Array [ "button.modules.css!=!./index-loader-syntax-sass.css", - ".rZ5eCb_mQRy7Svv7Z30B { + ".Bm6FV6LbXUxAkIaBjl7y { width: 5px; }", "", ], Array [ "button.module.scss!=!./base64-loader/index.js?LmZvbyB7IGNvbG9yOiByZWQ7IH0=!./simple.js?foo=bar", - ".y2EgZjTXV61h0Dgjp49t { + ".nQ7qpE_fxjuYDsViKqtM { color: red; }", "", ], Array [ "other.module.scss!=!./base64-loader/index.js?LmZvbyB7IGNvbG9yOiByZWQ7IH0=!./simple.js?foo=baz", - ".PTgI00lRDqe1Y8cb5zcw { + ".nQ7qpE_fxjuYDsViKqtM { color: red; }", "", diff --git a/test/__snapshots__/modules-option.test.js.snap b/test/__snapshots__/modules-option.test.js.snap index 8d476dca..b0e71bf6 100644 --- a/test/__snapshots__/modules-option.test.js.snap +++ b/test/__snapshots__/modules-option.test.js.snap @@ -1983,58 +1983,58 @@ exports[`"modules" option should work and generate the same classes for client a exports[`"modules" option should work and generate the same classes for client and server: client module 1`] = ` "// extracted by mini-css-extract-plugin -export default {\\"123\\":\\"_Oc_nRVO4GQ7K00YULUr\\",\\"test\\":\\"HovVWrUTjN5P06AwS5hN\\",\\"_test\\":\\"_1mLQ0KYr3ydD9bSOOL1\\",\\"className\\":\\"MMk_yFMICywUeqR0iepY\\",\\"someId\\":\\"f_mZz_4mbpipziaiwoW7\\",\\"subClass\\":\\"FYyIWexDGlFG5gXl93Xj\\",\\"-a0-34a___f\\":\\"r_hifewiIojngzs4DOcu\\",\\"m_x_@\\":\\"yUrnJ_pW2ADLHyYLqUNl\\",\\"B&W?\\":\\"O_Xkei1DAX2qh34wT83c\\",\\":\`(\\":\\"_rpCeu5pHk92Z3qzqY_z\\",\\"1a2b3c\\":\\"mxXeAFeh5Mboa3cSbvJV\\",\\"#fake-id\\":\\"_92k79k_uZJspC9mIPTv\\",\\"-a-b-c-\\":\\"c0kkJWClscbZOtfilBcE\\",\\"©\\":\\"DLosMLOukp7Tp4hO7jL0\\",\\"♥\\":\\"HQMfjUZeec5zWyS66OmG\\",\\"“‘’”\\":\\"bS0LrUqKBV4iaTBAKsMY\\",\\"☺☃\\":\\"F0_yWUDvkyhteJA00zkw\\",\\"⌘⌥\\":\\"VyeHlHnBWZuQCsFzscUO\\",\\"𝄞♪♩♫♬\\":\\"Qi7pfuLhD35O0Cedn4XB\\",\\"💩\\":\\"CjG3lWNhvVCcm5R6oxYM\\",\\"?\\":\\"heeATAtrwLqLPvwgoctG\\",\\"@\\":\\"YofbbuSihGYM9Du0fcYK\\",\\".\\":\\"_29WwWt8JVmDYN7Z_26q\\",\\":)\\":\\"I_4AeARK9lm4N7TVyuAb\\",\\"

\\":\\"KBVLvvCBhxVgvzXe27HR\\",\\"<><<<>><>\\":\\"vOWmh2fN7CCzZsQKNPLz\\",\\"++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\":\\"_D32kH5S0xGxuC7YOC_W\\",\\"#\\":\\"LpBEGYchm65LG8_V9AYi\\",\\"##\\":\\"wZKDT2QRg1jShfVg3_E4\\",\\"#.#.#\\":\\"oGI7_ChvpMbDAwYUoeH1\\",\\"_\\":\\"myeULb2GLN5e3KYA4yxA\\",\\"{}\\":\\"Mae71ybFnDtrq6WgUsIc\\",\\"foo.bar\\":\\"TpLCT2g4E__O5IMrfhLJ\\",\\":hover\\":\\"l6Av_vs8d_tfpiyTm4bl\\",\\":hover:focus:active\\":\\"ZGmd9HMc_iPx6487LarY\\",\\"[attr=value]\\":\\"KPlJewNi3KC23yxaC_Se\\",\\"f/o/o\\":\\"DIrFdFnBQ9zTR508DSWD\\",\\"f\\\\\\\\o\\\\\\\\o\\":\\"H1knt1tAX5P0sDfLK_9n\\",\\"f*o*o\\":\\"_vAKu2IlrR_fciB3Sosm\\",\\"f!o!o\\":\\"APY_BKpa8G_34n1qfebn\\",\\"f'o'o\\":\\"jTuAkufdKA9r5gtN7Tkc\\",\\"f~o~o\\":\\"S4VvFBeH35ONqPvY3XAy\\",\\"f+o+o\\":\\"AWIsfyEkWwVCslashhSx\\",\\"foo/bar\\":\\"DhIde1WbgzO_4SPrpPoE\\",\\"foo\\\\\\\\bar\\":\\"aeKkgCs_2D8eu6BLa0Ea\\",\\"foo/bar/baz\\":\\"QFT18bFiHRmL7zKaOBRZ\\",\\"foo\\\\\\\\bar\\\\\\\\baz\\":\\"uM3RYQs79zwACaTJ3vBh\\"};" +export default {\\"123\\":\\"oqRGsO4UR7_DWiqWXJMz\\",\\"test\\":\\"KuIShlgsYfxvLoLHT1mu\\",\\"_test\\":\\"Lb3fhDAuJv4v7BXOPttP\\",\\"className\\":\\"LdhpkZRWyKT7zDwJ0lt8\\",\\"someId\\":\\"b0rhwJStMR3eH63oapwW\\",\\"subClass\\":\\"Mw9j4nIdjx1xCGDt7d6a\\",\\"-a0-34a___f\\":\\"DdFWMPoluIgmQirKzoS6\\",\\"m_x_@\\":\\"OdAmghrme3xnUYOdzoDw\\",\\"B&W?\\":\\"h4SEF34CLwChRsak1742\\",\\":\`(\\":\\"fKJQkLarfQOel4wwbIrn\\",\\"1a2b3c\\":\\"YR1u_buYf6paLzzUM6Vc\\",\\"#fake-id\\":\\"AqiAGSfnwaXj3eqg0Om8\\",\\"-a-b-c-\\":\\"CwXv27VMwyQqKBvNNaFr\\",\\"©\\":\\"jBj0sZiWBysiwRyGu_go\\",\\"♥\\":\\"vJl9A9Ds21oujVsd5UD2\\",\\"“‘’”\\":\\"GM0Y0nFCPtkVMz6Esfno\\",\\"☺☃\\":\\"NKrBw7EAqPT7Cgn7JzrA\\",\\"⌘⌥\\":\\"edHWpSne18gmGmfN6SV6\\",\\"𝄞♪♩♫♬\\":\\"QyMp9YMEoYUmEHEdpRal\\",\\"💩\\":\\"B82YxwgREHbKn8IpgaWw\\",\\"?\\":\\"ndmpvNNltJXbDVvqKuxt\\",\\"@\\":\\"v3gq0wPogd6ZPfq_pfyZ\\",\\".\\":\\"zd5uIZq6KrAWTwBjwZdC\\",\\":)\\":\\"ZiZnRjRT03NgoqVQwkGO\\",\\"

\\":\\"TdAx2ZSkw7Hbktc7KR72\\",\\"<><<<>><>\\":\\"ozNsTIG0LL2gSQdL5dzv\\",\\"++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\":\\"ByKoYcSrMT2cN3V2iAgZ\\",\\"#\\":\\"HkwIsjW5i7WNAxVRd5cg\\",\\"##\\":\\"IJc6Xl4ZKVZvSoeIuI2Q\\",\\"#.#.#\\":\\"BnPpnJmPeNr51pj2ZTlf\\",\\"_\\":\\"bCwkZEDuxDAOhKnMdLVF\\",\\"{}\\":\\"IZkBfE9iUPen76w2bB_q\\",\\"foo.bar\\":\\"uajo7mHzD_tTqOXqaqdg\\",\\":hover\\":\\"HVudUNXnLNQoCLpVn82S\\",\\":hover:focus:active\\":\\"ZlaaXvHLUsJOCFzItB_1\\",\\"[attr=value]\\":\\"PWvC4jVM5SwUmKmw2tfW\\",\\"f/o/o\\":\\"A5l5sDODF4CQBW_PtlQD\\",\\"f\\\\\\\\o\\\\\\\\o\\":\\"DFfh4KyqOODVQsTPb3wt\\",\\"f*o*o\\":\\"gv1E2n_bVvy0iT8TaHIv\\",\\"f!o!o\\":\\"_aIyR9ETAs8ipXmRrrDO\\",\\"f'o'o\\":\\"HSXNnSjt1QaHBHUb_UIs\\",\\"f~o~o\\":\\"MrVzSIcSXyoDsr5G0K5_\\",\\"f+o+o\\":\\"EvMHRmCudyKg3GpLjAfj\\",\\"foo/bar\\":\\"hei2uQgDeX2YNkppCHp9\\",\\"foo\\\\\\\\bar\\":\\"IgSzmmsCqiJBl4SibwgR\\",\\"foo/bar/baz\\":\\"p6KJMhNWwmCU2bXHJB93\\",\\"foo\\\\\\\\bar\\\\\\\\baz\\":\\"HZerWgmU0ffpPzySVi_g\\"};" `; exports[`"modules" option should work and generate the same classes for client and server: client result 1`] = ` Object { - "#": "LpBEGYchm65LG8_V9AYi", - "##": "wZKDT2QRg1jShfVg3_E4", - "#.#.#": "oGI7_ChvpMbDAwYUoeH1", - "#fake-id": "_92k79k_uZJspC9mIPTv", - "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.": "_D32kH5S0xGxuC7YOC_W", - "-a-b-c-": "c0kkJWClscbZOtfilBcE", - "-a0-34a___f": "r_hifewiIojngzs4DOcu", - ".": "_29WwWt8JVmDYN7Z_26q", - "123": "_Oc_nRVO4GQ7K00YULUr", - "1a2b3c": "mxXeAFeh5Mboa3cSbvJV", - ":)": "I_4AeARK9lm4N7TVyuAb", - ":\`(": "_rpCeu5pHk92Z3qzqY_z", - ":hover": "l6Av_vs8d_tfpiyTm4bl", - ":hover:focus:active": "ZGmd9HMc_iPx6487LarY", - "<><<<>><>": "vOWmh2fN7CCzZsQKNPLz", - "

": "KBVLvvCBhxVgvzXe27HR", - "?": "heeATAtrwLqLPvwgoctG", - "@": "YofbbuSihGYM9Du0fcYK", - "B&W?": "O_Xkei1DAX2qh34wT83c", - "[attr=value]": "KPlJewNi3KC23yxaC_Se", - "_": "myeULb2GLN5e3KYA4yxA", - "_test": "_1mLQ0KYr3ydD9bSOOL1", - "className": "MMk_yFMICywUeqR0iepY", - "f!o!o": "APY_BKpa8G_34n1qfebn", - "f'o'o": "jTuAkufdKA9r5gtN7Tkc", - "f*o*o": "_vAKu2IlrR_fciB3Sosm", - "f+o+o": "AWIsfyEkWwVCslashhSx", - "f/o/o": "DIrFdFnBQ9zTR508DSWD", - "f\\\\o\\\\o": "H1knt1tAX5P0sDfLK_9n", - "foo.bar": "TpLCT2g4E__O5IMrfhLJ", - "foo/bar": "DhIde1WbgzO_4SPrpPoE", - "foo/bar/baz": "QFT18bFiHRmL7zKaOBRZ", - "foo\\\\bar": "aeKkgCs_2D8eu6BLa0Ea", - "foo\\\\bar\\\\baz": "uM3RYQs79zwACaTJ3vBh", - "f~o~o": "S4VvFBeH35ONqPvY3XAy", - "m_x_@": "yUrnJ_pW2ADLHyYLqUNl", - "someId": "f_mZz_4mbpipziaiwoW7", - "subClass": "FYyIWexDGlFG5gXl93Xj", - "test": "HovVWrUTjN5P06AwS5hN", - "{}": "Mae71ybFnDtrq6WgUsIc", - "©": "DLosMLOukp7Tp4hO7jL0", - "“‘’”": "bS0LrUqKBV4iaTBAKsMY", - "⌘⌥": "VyeHlHnBWZuQCsFzscUO", - "☺☃": "F0_yWUDvkyhteJA00zkw", - "♥": "HQMfjUZeec5zWyS66OmG", - "𝄞♪♩♫♬": "Qi7pfuLhD35O0Cedn4XB", - "💩": "CjG3lWNhvVCcm5R6oxYM", + "#": "HkwIsjW5i7WNAxVRd5cg", + "##": "IJc6Xl4ZKVZvSoeIuI2Q", + "#.#.#": "BnPpnJmPeNr51pj2ZTlf", + "#fake-id": "AqiAGSfnwaXj3eqg0Om8", + "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.": "ByKoYcSrMT2cN3V2iAgZ", + "-a-b-c-": "CwXv27VMwyQqKBvNNaFr", + "-a0-34a___f": "DdFWMPoluIgmQirKzoS6", + ".": "zd5uIZq6KrAWTwBjwZdC", + "123": "oqRGsO4UR7_DWiqWXJMz", + "1a2b3c": "YR1u_buYf6paLzzUM6Vc", + ":)": "ZiZnRjRT03NgoqVQwkGO", + ":\`(": "fKJQkLarfQOel4wwbIrn", + ":hover": "HVudUNXnLNQoCLpVn82S", + ":hover:focus:active": "ZlaaXvHLUsJOCFzItB_1", + "<><<<>><>": "ozNsTIG0LL2gSQdL5dzv", + "

": "TdAx2ZSkw7Hbktc7KR72", + "?": "ndmpvNNltJXbDVvqKuxt", + "@": "v3gq0wPogd6ZPfq_pfyZ", + "B&W?": "h4SEF34CLwChRsak1742", + "[attr=value]": "PWvC4jVM5SwUmKmw2tfW", + "_": "bCwkZEDuxDAOhKnMdLVF", + "_test": "Lb3fhDAuJv4v7BXOPttP", + "className": "LdhpkZRWyKT7zDwJ0lt8", + "f!o!o": "_aIyR9ETAs8ipXmRrrDO", + "f'o'o": "HSXNnSjt1QaHBHUb_UIs", + "f*o*o": "gv1E2n_bVvy0iT8TaHIv", + "f+o+o": "EvMHRmCudyKg3GpLjAfj", + "f/o/o": "A5l5sDODF4CQBW_PtlQD", + "f\\\\o\\\\o": "DFfh4KyqOODVQsTPb3wt", + "foo.bar": "uajo7mHzD_tTqOXqaqdg", + "foo/bar": "hei2uQgDeX2YNkppCHp9", + "foo/bar/baz": "p6KJMhNWwmCU2bXHJB93", + "foo\\\\bar": "IgSzmmsCqiJBl4SibwgR", + "foo\\\\bar\\\\baz": "HZerWgmU0ffpPzySVi_g", + "f~o~o": "MrVzSIcSXyoDsr5G0K5_", + "m_x_@": "OdAmghrme3xnUYOdzoDw", + "someId": "b0rhwJStMR3eH63oapwW", + "subClass": "Mw9j4nIdjx1xCGDt7d6a", + "test": "KuIShlgsYfxvLoLHT1mu", + "{}": "IZkBfE9iUPen76w2bB_q", + "©": "jBj0sZiWBysiwRyGu_go", + "“‘’”": "GM0Y0nFCPtkVMz6Esfno", + "⌘⌥": "edHWpSne18gmGmfN6SV6", + "☺☃": "NKrBw7EAqPT7Cgn7JzrA", + "♥": "vJl9A9Ds21oujVsd5UD2", + "𝄞♪♩♫♬": "QyMp9YMEoYUmEHEdpRal", + "💩": "B82YxwgREHbKn8IpgaWw", } `; @@ -2045,106 +2045,106 @@ exports[`"modules" option should work and generate the same classes for client a exports[`"modules" option should work and generate the same classes for client and server: server module 1`] = ` "// Exports export default { - \\"123\\": \\"_Oc_nRVO4GQ7K00YULUr\\", - \\"test\\": \\"HovVWrUTjN5P06AwS5hN\\", - \\"_test\\": \\"_1mLQ0KYr3ydD9bSOOL1\\", - \\"className\\": \\"MMk_yFMICywUeqR0iepY\\", - \\"someId\\": \\"f_mZz_4mbpipziaiwoW7\\", - \\"subClass\\": \\"FYyIWexDGlFG5gXl93Xj\\", - \\"-a0-34a___f\\": \\"r_hifewiIojngzs4DOcu\\", - \\"m_x_@\\": \\"yUrnJ_pW2ADLHyYLqUNl\\", - \\"B&W?\\": \\"O_Xkei1DAX2qh34wT83c\\", - \\":\`(\\": \\"_rpCeu5pHk92Z3qzqY_z\\", - \\"1a2b3c\\": \\"mxXeAFeh5Mboa3cSbvJV\\", - \\"#fake-id\\": \\"_92k79k_uZJspC9mIPTv\\", - \\"-a-b-c-\\": \\"c0kkJWClscbZOtfilBcE\\", - \\"©\\": \\"DLosMLOukp7Tp4hO7jL0\\", - \\"♥\\": \\"HQMfjUZeec5zWyS66OmG\\", - \\"“‘’”\\": \\"bS0LrUqKBV4iaTBAKsMY\\", - \\"☺☃\\": \\"F0_yWUDvkyhteJA00zkw\\", - \\"⌘⌥\\": \\"VyeHlHnBWZuQCsFzscUO\\", - \\"𝄞♪♩♫♬\\": \\"Qi7pfuLhD35O0Cedn4XB\\", - \\"💩\\": \\"CjG3lWNhvVCcm5R6oxYM\\", - \\"?\\": \\"heeATAtrwLqLPvwgoctG\\", - \\"@\\": \\"YofbbuSihGYM9Du0fcYK\\", - \\".\\": \\"_29WwWt8JVmDYN7Z_26q\\", - \\":)\\": \\"I_4AeARK9lm4N7TVyuAb\\", - \\"

\\": \\"KBVLvvCBhxVgvzXe27HR\\", - \\"<><<<>><>\\": \\"vOWmh2fN7CCzZsQKNPLz\\", - \\"++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\": \\"_D32kH5S0xGxuC7YOC_W\\", - \\"#\\": \\"LpBEGYchm65LG8_V9AYi\\", - \\"##\\": \\"wZKDT2QRg1jShfVg3_E4\\", - \\"#.#.#\\": \\"oGI7_ChvpMbDAwYUoeH1\\", - \\"_\\": \\"myeULb2GLN5e3KYA4yxA\\", - \\"{}\\": \\"Mae71ybFnDtrq6WgUsIc\\", - \\"foo.bar\\": \\"TpLCT2g4E__O5IMrfhLJ\\", - \\":hover\\": \\"l6Av_vs8d_tfpiyTm4bl\\", - \\":hover:focus:active\\": \\"ZGmd9HMc_iPx6487LarY\\", - \\"[attr=value]\\": \\"KPlJewNi3KC23yxaC_Se\\", - \\"f/o/o\\": \\"DIrFdFnBQ9zTR508DSWD\\", - \\"f\\\\\\\\o\\\\\\\\o\\": \\"H1knt1tAX5P0sDfLK_9n\\", - \\"f*o*o\\": \\"_vAKu2IlrR_fciB3Sosm\\", - \\"f!o!o\\": \\"APY_BKpa8G_34n1qfebn\\", - \\"f'o'o\\": \\"jTuAkufdKA9r5gtN7Tkc\\", - \\"f~o~o\\": \\"S4VvFBeH35ONqPvY3XAy\\", - \\"f+o+o\\": \\"AWIsfyEkWwVCslashhSx\\", - \\"foo/bar\\": \\"DhIde1WbgzO_4SPrpPoE\\", - \\"foo\\\\\\\\bar\\": \\"aeKkgCs_2D8eu6BLa0Ea\\", - \\"foo/bar/baz\\": \\"QFT18bFiHRmL7zKaOBRZ\\", - \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"uM3RYQs79zwACaTJ3vBh\\" + \\"123\\": \\"oqRGsO4UR7_DWiqWXJMz\\", + \\"test\\": \\"KuIShlgsYfxvLoLHT1mu\\", + \\"_test\\": \\"Lb3fhDAuJv4v7BXOPttP\\", + \\"className\\": \\"LdhpkZRWyKT7zDwJ0lt8\\", + \\"someId\\": \\"b0rhwJStMR3eH63oapwW\\", + \\"subClass\\": \\"Mw9j4nIdjx1xCGDt7d6a\\", + \\"-a0-34a___f\\": \\"DdFWMPoluIgmQirKzoS6\\", + \\"m_x_@\\": \\"OdAmghrme3xnUYOdzoDw\\", + \\"B&W?\\": \\"h4SEF34CLwChRsak1742\\", + \\":\`(\\": \\"fKJQkLarfQOel4wwbIrn\\", + \\"1a2b3c\\": \\"YR1u_buYf6paLzzUM6Vc\\", + \\"#fake-id\\": \\"AqiAGSfnwaXj3eqg0Om8\\", + \\"-a-b-c-\\": \\"CwXv27VMwyQqKBvNNaFr\\", + \\"©\\": \\"jBj0sZiWBysiwRyGu_go\\", + \\"♥\\": \\"vJl9A9Ds21oujVsd5UD2\\", + \\"“‘’”\\": \\"GM0Y0nFCPtkVMz6Esfno\\", + \\"☺☃\\": \\"NKrBw7EAqPT7Cgn7JzrA\\", + \\"⌘⌥\\": \\"edHWpSne18gmGmfN6SV6\\", + \\"𝄞♪♩♫♬\\": \\"QyMp9YMEoYUmEHEdpRal\\", + \\"💩\\": \\"B82YxwgREHbKn8IpgaWw\\", + \\"?\\": \\"ndmpvNNltJXbDVvqKuxt\\", + \\"@\\": \\"v3gq0wPogd6ZPfq_pfyZ\\", + \\".\\": \\"zd5uIZq6KrAWTwBjwZdC\\", + \\":)\\": \\"ZiZnRjRT03NgoqVQwkGO\\", + \\"

\\": \\"TdAx2ZSkw7Hbktc7KR72\\", + \\"<><<<>><>\\": \\"ozNsTIG0LL2gSQdL5dzv\\", + \\"++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\": \\"ByKoYcSrMT2cN3V2iAgZ\\", + \\"#\\": \\"HkwIsjW5i7WNAxVRd5cg\\", + \\"##\\": \\"IJc6Xl4ZKVZvSoeIuI2Q\\", + \\"#.#.#\\": \\"BnPpnJmPeNr51pj2ZTlf\\", + \\"_\\": \\"bCwkZEDuxDAOhKnMdLVF\\", + \\"{}\\": \\"IZkBfE9iUPen76w2bB_q\\", + \\"foo.bar\\": \\"uajo7mHzD_tTqOXqaqdg\\", + \\":hover\\": \\"HVudUNXnLNQoCLpVn82S\\", + \\":hover:focus:active\\": \\"ZlaaXvHLUsJOCFzItB_1\\", + \\"[attr=value]\\": \\"PWvC4jVM5SwUmKmw2tfW\\", + \\"f/o/o\\": \\"A5l5sDODF4CQBW_PtlQD\\", + \\"f\\\\\\\\o\\\\\\\\o\\": \\"DFfh4KyqOODVQsTPb3wt\\", + \\"f*o*o\\": \\"gv1E2n_bVvy0iT8TaHIv\\", + \\"f!o!o\\": \\"_aIyR9ETAs8ipXmRrrDO\\", + \\"f'o'o\\": \\"HSXNnSjt1QaHBHUb_UIs\\", + \\"f~o~o\\": \\"MrVzSIcSXyoDsr5G0K5_\\", + \\"f+o+o\\": \\"EvMHRmCudyKg3GpLjAfj\\", + \\"foo/bar\\": \\"hei2uQgDeX2YNkppCHp9\\", + \\"foo\\\\\\\\bar\\": \\"IgSzmmsCqiJBl4SibwgR\\", + \\"foo/bar/baz\\": \\"p6KJMhNWwmCU2bXHJB93\\", + \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"HZerWgmU0ffpPzySVi_g\\" }; " `; exports[`"modules" option should work and generate the same classes for client and server: server result 1`] = ` Object { - "#": "LpBEGYchm65LG8_V9AYi", - "##": "wZKDT2QRg1jShfVg3_E4", - "#.#.#": "oGI7_ChvpMbDAwYUoeH1", - "#fake-id": "_92k79k_uZJspC9mIPTv", - "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.": "_D32kH5S0xGxuC7YOC_W", - "-a-b-c-": "c0kkJWClscbZOtfilBcE", - "-a0-34a___f": "r_hifewiIojngzs4DOcu", - ".": "_29WwWt8JVmDYN7Z_26q", - "123": "_Oc_nRVO4GQ7K00YULUr", - "1a2b3c": "mxXeAFeh5Mboa3cSbvJV", - ":)": "I_4AeARK9lm4N7TVyuAb", - ":\`(": "_rpCeu5pHk92Z3qzqY_z", - ":hover": "l6Av_vs8d_tfpiyTm4bl", - ":hover:focus:active": "ZGmd9HMc_iPx6487LarY", - "<><<<>><>": "vOWmh2fN7CCzZsQKNPLz", - "

": "KBVLvvCBhxVgvzXe27HR", - "?": "heeATAtrwLqLPvwgoctG", - "@": "YofbbuSihGYM9Du0fcYK", - "B&W?": "O_Xkei1DAX2qh34wT83c", - "[attr=value]": "KPlJewNi3KC23yxaC_Se", - "_": "myeULb2GLN5e3KYA4yxA", - "_test": "_1mLQ0KYr3ydD9bSOOL1", - "className": "MMk_yFMICywUeqR0iepY", - "f!o!o": "APY_BKpa8G_34n1qfebn", - "f'o'o": "jTuAkufdKA9r5gtN7Tkc", - "f*o*o": "_vAKu2IlrR_fciB3Sosm", - "f+o+o": "AWIsfyEkWwVCslashhSx", - "f/o/o": "DIrFdFnBQ9zTR508DSWD", - "f\\\\o\\\\o": "H1knt1tAX5P0sDfLK_9n", - "foo.bar": "TpLCT2g4E__O5IMrfhLJ", - "foo/bar": "DhIde1WbgzO_4SPrpPoE", - "foo/bar/baz": "QFT18bFiHRmL7zKaOBRZ", - "foo\\\\bar": "aeKkgCs_2D8eu6BLa0Ea", - "foo\\\\bar\\\\baz": "uM3RYQs79zwACaTJ3vBh", - "f~o~o": "S4VvFBeH35ONqPvY3XAy", - "m_x_@": "yUrnJ_pW2ADLHyYLqUNl", - "someId": "f_mZz_4mbpipziaiwoW7", - "subClass": "FYyIWexDGlFG5gXl93Xj", - "test": "HovVWrUTjN5P06AwS5hN", - "{}": "Mae71ybFnDtrq6WgUsIc", - "©": "DLosMLOukp7Tp4hO7jL0", - "“‘’”": "bS0LrUqKBV4iaTBAKsMY", - "⌘⌥": "VyeHlHnBWZuQCsFzscUO", - "☺☃": "F0_yWUDvkyhteJA00zkw", - "♥": "HQMfjUZeec5zWyS66OmG", - "𝄞♪♩♫♬": "Qi7pfuLhD35O0Cedn4XB", - "💩": "CjG3lWNhvVCcm5R6oxYM", + "#": "HkwIsjW5i7WNAxVRd5cg", + "##": "IJc6Xl4ZKVZvSoeIuI2Q", + "#.#.#": "BnPpnJmPeNr51pj2ZTlf", + "#fake-id": "AqiAGSfnwaXj3eqg0Om8", + "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.": "ByKoYcSrMT2cN3V2iAgZ", + "-a-b-c-": "CwXv27VMwyQqKBvNNaFr", + "-a0-34a___f": "DdFWMPoluIgmQirKzoS6", + ".": "zd5uIZq6KrAWTwBjwZdC", + "123": "oqRGsO4UR7_DWiqWXJMz", + "1a2b3c": "YR1u_buYf6paLzzUM6Vc", + ":)": "ZiZnRjRT03NgoqVQwkGO", + ":\`(": "fKJQkLarfQOel4wwbIrn", + ":hover": "HVudUNXnLNQoCLpVn82S", + ":hover:focus:active": "ZlaaXvHLUsJOCFzItB_1", + "<><<<>><>": "ozNsTIG0LL2gSQdL5dzv", + "

": "TdAx2ZSkw7Hbktc7KR72", + "?": "ndmpvNNltJXbDVvqKuxt", + "@": "v3gq0wPogd6ZPfq_pfyZ", + "B&W?": "h4SEF34CLwChRsak1742", + "[attr=value]": "PWvC4jVM5SwUmKmw2tfW", + "_": "bCwkZEDuxDAOhKnMdLVF", + "_test": "Lb3fhDAuJv4v7BXOPttP", + "className": "LdhpkZRWyKT7zDwJ0lt8", + "f!o!o": "_aIyR9ETAs8ipXmRrrDO", + "f'o'o": "HSXNnSjt1QaHBHUb_UIs", + "f*o*o": "gv1E2n_bVvy0iT8TaHIv", + "f+o+o": "EvMHRmCudyKg3GpLjAfj", + "f/o/o": "A5l5sDODF4CQBW_PtlQD", + "f\\\\o\\\\o": "DFfh4KyqOODVQsTPb3wt", + "foo.bar": "uajo7mHzD_tTqOXqaqdg", + "foo/bar": "hei2uQgDeX2YNkppCHp9", + "foo/bar/baz": "p6KJMhNWwmCU2bXHJB93", + "foo\\\\bar": "IgSzmmsCqiJBl4SibwgR", + "foo\\\\bar\\\\baz": "HZerWgmU0ffpPzySVi_g", + "f~o~o": "MrVzSIcSXyoDsr5G0K5_", + "m_x_@": "OdAmghrme3xnUYOdzoDw", + "someId": "b0rhwJStMR3eH63oapwW", + "subClass": "Mw9j4nIdjx1xCGDt7d6a", + "test": "KuIShlgsYfxvLoLHT1mu", + "{}": "IZkBfE9iUPen76w2bB_q", + "©": "jBj0sZiWBysiwRyGu_go", + "“‘’”": "GM0Y0nFCPtkVMz6Esfno", + "⌘⌥": "edHWpSne18gmGmfN6SV6", + "☺☃": "NKrBw7EAqPT7Cgn7JzrA", + "♥": "vJl9A9Ds21oujVsd5UD2", + "𝄞♪♩♫♬": "QyMp9YMEoYUmEHEdpRal", + "💩": "B82YxwgREHbKn8IpgaWw", } `; @@ -5250,11 +5250,11 @@ import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSour import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); // Module -___CSS_LOADER_EXPORT___.push([module.id, \\".j8UqMCngCVlrlUe9X5iP {\\\\n color: red;\\\\n}\\\\n\\\\n.rSiZpoeHP51qJfp_DRMi { from: custom; }\\", \\"\\"]); +___CSS_LOADER_EXPORT___.push([module.id, \\".dvYI1gdIOPlJqjwAWOo8 {\\\\n color: red;\\\\n}\\\\n\\\\n.s4qiGaiPSoYikcMyZg9a { from: custom; }\\", \\"\\"]); // Exports ___CSS_LOADER_EXPORT___.locals = { - \\"some-class\\": \\"j8UqMCngCVlrlUe9X5iP\\", - \\"class\\": \\"rSiZpoeHP51qJfp_DRMi\\" + \\"some-class\\": \\"dvYI1gdIOPlJqjwAWOo8\\", + \\"class\\": \\"s4qiGaiPSoYikcMyZg9a\\" }; export default ___CSS_LOADER_EXPORT___; " @@ -5289,11 +5289,11 @@ Array [ ], Array [ "other.modules.css!=!./my-inline-loader/index.js!./simple.css", - ".j8UqMCngCVlrlUe9X5iP { + ".dvYI1gdIOPlJqjwAWOo8 { color: red; } -.rSiZpoeHP51qJfp_DRMi { from: custom; }", +.s4qiGaiPSoYikcMyZg9a { from: custom; }", "", ], Array [ @@ -15550,7 +15550,7 @@ exports[`"modules" option should work with the 'auto' and exctract CSS using min "/*!*****************************************************************!*\\\\ !*** css ../../src/index.js!./modules/mode/relative.module.css ***! \\\\*****************************************************************/ -.LnZI_FRppe2YbryCEqXn { +.cK4wjjU46XTRUXJefTb2 { color: red; } @@ -15561,7 +15561,7 @@ exports[`"modules" option should work with the 'auto' and exctract CSS using min exports[`"modules" option should work with the 'auto' and exctract CSS using mini-css-extract-plugin: module 1`] = ` "// extracted by mini-css-extract-plugin -export default {\\"relative\\":\\"LnZI_FRppe2YbryCEqXn\\"};" +export default {\\"relative\\":\\"cK4wjjU46XTRUXJefTb2\\"};" `; exports[`"modules" option should work with the 'auto' and exctract CSS using mini-css-extract-plugin: warnings 1`] = `Array []`;