8000 fix: respect the `localIdentRegExp` option (#1349) · kakachake/css-loader@42f150b · GitHub
Skip to content

Commit 42f150b

Browse files
fix: respect the localIdentRegExp option (webpack#1349)
1 parent 9560168 commit 42f150b

File tree

3 files changed

+219
-1
lines changed
  • 3 files changed

    +219
    -1
    lines changed

    src/utils.js

    Lines changed: 13 additions & 1 deletion
    Original file line numberDiff line numberDiff line change
    @@ -387,7 +387,19 @@ function defaultGetLocalIdent(
    387387
    };
    388388

    389389
    // eslint-disable-next-line no-underscore-dangle
    390-
    return loaderContext._compilation.getPath(localIdentName, data);
    390+
    let result = loaderContext._compilation.getPath(localIdentName, data);
    391+
    392+
    if (options.regExp) {
    393+
    const match = loaderContext.resourcePath.match(options.regExp);
    394+
    395+
    if (match) {
    396+
    match.forEach((matched, i) => {
    397+
    result = result.replace(new RegExp(`\\[${i}\\]`, "ig"), matched);
    398+
    });
    399+
    }
    400+
    }
    401+
    402+
    return result;
    391403
    }
    392404

    393405
    function fixedEncodeURIComponent(str) {

    test/__snapshots__/modules-option.test.js.snap

    Lines changed: 187 additions & 0 deletions
    Original file line numberDiff line numberDiff line change
    @@ -4070,6 +4070,193 @@ Array [
    40704070

    40714071
    exports[`"modules" option should work and respect the "localIdentName" option: warnings 1`] = `Array []`;
    40724072

    4073+
    exports[`"modules" option should work and respect the "localIdentRegExp" option: errors 1`] = `Array []`;
    4074+
    4075+
    exports[`"modules" option should work and respect the "localIdentRegExp" option: module 1`] = `
    4076+
    "// Imports
    4077+
    import ___CSS_LOADER_API_IMPORT___ from \\"../../../../src/runtime/api.js\\";
    4078+
    var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});
    4079+
    // Module
    4080+
    ___CSS_LOADER_EXPORT___.push([module.id, \\".localIdentName__test__HovVWrUT {\\\\n background: red;\\\\n}\\\\n\\\\n.localIdentName___test___1mLQ0KY {\\\\n background: blue;\\\\n}\\\\n\\\\n.localIdentName__className__MMk_yFMI {\\\\n background: red;\\\\n}\\\\n\\\\n#localIdentName__someId__f_mZz_4m {\\\\n background: green;\\\\n}\\\\n\\\\n.localIdentName__className__MMk_yFMI .localIdentName__subClass__FYyIWexD {\\\\n color: green;\\\\n}\\\\n\\\\n#localIdentName__someId__f_mZz_4m .localIdentName__subClass__FYyIWexD {\\\\n color: blue;\\\\n}\\\\n\\\\n.localIdentName__-a0-34a___f__r_hifewi {\\\\n color: red;\\\\n}\\\\n\\\\n.localIdentName__m_x_\\\\\\\\@__yUrnJ_pW {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n.localIdentName__B\\\\\\\\&W\\\\\\\\?__O_Xkei1D {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.localIdentName__\\\\\\\\3A \\\\\\\\\`\\\\\\\\(___rpCeu5p {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n.localIdentName__\\\\\\\\31 a2b3c__mxXeAFeh {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#localIdentName__\\\\\\\\#fake-id___92k79k_ {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#localIdentName__-a-b-c-__c0kkJWCl {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#localIdentName__©__DLosMLOu {\\\\n color: black;\\\\n}\\\\n\\\\n.localIdentName__♥__HQMfjUZe { background: lime; }\\\\n.localIdentName__©__DLosMLOu { background: lime; }\\\\n.localIdentName__“‘’”__bS0LrUqK { background: lime; }\\\\n.localIdentName__☺☃__F0_yWUDv { background: lime; }\\\\n.localIdentName__⌘⌥__VyeHlHnB { background: lime; }\\\\n.localIdentName__𝄞♪♩♫♬__Qi7pfuLh { background: lime; }\\\\n.localIdentName__💩__CjG3lWNh { background: lime; }\\\\n.localIdentName__\\\\\\\\?__heeATAtr { background: lime; }\\\\n.localIdentName__\\\\\\\\@__YofbbuSi { background: lime; }\\\\n.localIdentName__\\\\\\\\.___29WwWt8 { background: lime; }\\\\n.localIdentName__\\\\\\\\3A \\\\\\\\)__I_4AeARK { background: lime; }\\\\n.localIdentName__\\\\\\\\3A \\\\\\\\\`\\\\\\\\(___rpCeu5p { background: lime; }\\\\n.localIdentName__\\\\\\\\31 23___Oc_nRVO { background: lime; }\\\\n.localIdentName__\\\\\\\\31 a2b3c__mxXeAFeh { background: lime; }\\\\n.localIdentName__\\\\\\\\<p\\\\\\\\>__KBVLvvCB { background: lime; }\\\\n.localIdentName__\\\\\\\\<\\\\\\\\>\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\>\\\\\\\\>\\\\\\\\<\\\\\\\\>__vOWmh2fN { background: lime; }\\\\n.localIdentName__\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\[\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\-\\\\\\\\]\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\<\\\\\\\\<\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.___D32kH5S { background: lime; }\\\\n.localIdentName__\\\\\\\\#__LpBEGYch { background: lime; }\\\\n.localIdentName__\\\\\\\\#\\\\\\\\#__wZKDT2QR { background: lime; }\\\\n.localIdentName__\\\\\\\\#\\\\\\\\.\\\\\\\\#\\\\\\\\.\\\\\\\\#__oGI7_Chv { background: lime; }\\\\n.localIdentName__\\\\\\\\___myeULb2G { background: lime; }\\\\n.localIdentName__\\\\\\\\{\\\\\\\\}__Mae71ybF { background: lime; }\\\\n.localIdentName__\\\\\\\\#fake\\\\\\\\-id___92k79k_ { background: lime; }\\\\n.localIdentName__foo\\\\\\\\.bar__TpLCT2g4 { background: lime; }\\\\n.localIdentName__\\\\\\\\3A hover__l6Av_vs8 { background: lime; }\\\\n.localIdentName__\\\\\\\\3A hover\\\\\\\\3A focus\\\\\\\\3A active__ZGmd9HMc { background: lime; }\\\\n.localIdentName__\\\\\\\\[attr\\\\\\\\=value\\\\\\\\]__KPlJewNi { background: lime; }\\\\n.localIdentName__f\\\\\\\\/o\\\\\\\\/o__DIrFdFnB { background: lime; }\\\\n.localIdentName__f\\\\\\\\\\\\\\\\o\\\\\\\\\\\\\\\\o__H1knt1tA { background: lime; }\\\\n.localIdentName__f\\\\\\\\*o\\\\\\\\*o___vAKu2Il { background: lime; }\\\\n.localIdentName__f\\\\\\\\!o\\\\\\\\!o__APY_BKpa { background: lime; }\\\\n.localIdentName__f\\\\\\\\'o\\\\\\\\'o__jTuAkufd { background: lime; }\\\\n.localIdentName__f\\\\\\\\~o\\\\\\\\~o__S4VvFBeH { background: lime; }\\\\n.localIdentName__f\\\\\\\\+o\\\\\\\\+o__AWIsfyEk { background: lime; }\\\\n\\\\n.localIdentName__foo\\\\\\\\/bar__DhIde1Wb {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.localIdentName__foo\\\\\\\\\\\\\\\\bar__aeKkgCs_ {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.localIdentName__foo\\\\\\\\/bar\\\\\\\\/baz__QFT18bFi {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.localIdentName__foo\\\\\\\\\\\\\\\\bar\\\\\\\\\\\\\\\\baz__uM3RYQs7 {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]);
    4081+
    // Exports
    4082+
    ___CSS_LOADER_EXPORT___.locals = {
    4083+
    \\"123\\": \\"localIdentName__123___Oc_nRVO\\",
    4084+
    \\"test\\": \\"localIdentName__test__HovVWrUT\\",
    4085+
    \\"_test\\": \\"localIdentName___test___1mLQ0KY\\",
    4086+
    \\"className\\": \\"localIdentName__className__MMk_yFMI\\",
    4087+
    \\"someId\\": \\"localIdentName__someId__f_mZz_4m\\",
    4088+
    \\"subClass\\": \\"localIdentName__subClass__FYyIWexD\\",
    4089+
    \\"-a0-34a___f\\": \\"localIdentName__-a0-34a___f__r_hifewi\\",
    4090+
    \\"m_x_@\\": \\"localIdentName__m_x_@__yUrnJ_pW\\",
    4091+
    \\"B&W?\\": \\"localIdentName__B&W?__O_Xkei1D\\",
    4092+
    \\":\`(\\": \\"localIdentName__:\`(___rpCeu5p\\",
    4093+
    \\"1a2b3c\\": \\"local 729A IdentName__1a2b3c__mxXeAFeh\\",
    4094+
    \\"#fake-id\\": \\"localIdentName__#fake-id___92k79k_\\",
    4095+
    \\"-a-b-c-\\": \\"localIdentName__-a-b-c-__c0kkJWCl\\",
    4096+
    \\"©\\": \\"localIdentName__©__DLosMLOu\\",
    4097+
    \\"♥\\": \\"localIdentName__♥__HQMfjUZe\\",
    4098+
    \\"“‘’”\\": \\"localIdentName__“‘’”__bS0LrUqK\\",
    4099+
    \\"☺☃\\": \\"localIdentName__☺☃__F0_yWUDv\\",
    4100+
    \\"⌘⌥\\": \\"localIdentName__⌘⌥__VyeHlHnB\\",
    4101+
    \\"𝄞♪♩♫♬\\": \\"localIdentName__𝄞♪♩♫♬__Qi7pfuLh\\",
    4102+
    \\"💩\\": \\"localIdentName__💩__CjG3lWNh\\",
    4103+
    \\"?\\": \\"localIdentName__?__heeATAtr\\",
    4104+
    \\"@\\": \\"localIdentName__@__YofbbuSi\\",
    4105+
    \\".\\": \\"localIdentName__.___29WwWt8\\",
    4106+
    \\":)\\": \\"localIdentName__:)__I_4AeARK\\",
    4107+
    \\"<p>\\": \\"localIdentName__<p>__KBVLvvCB\\",
    4108+
    \\"<><<<>><>\\": \\"localIdentName__<><<<>><>__vOWmh2fN\\",
    4109+
    \\"++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\": \\"localIdentName__++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.___D32kH5S\\",
    4110+
    \\"#\\": \\"localIdentName__#__LpBEGYch\\",
    4111+
    \\"##\\": \\"localIdentName__##__wZKDT2QR\\",
    4112+
    \\"#.#.#\\": \\"localIdentName__#.#.#__oGI7_Chv\\",
    4113+
    \\"_\\": \\"localIdentName_____myeULb2G\\",
    4114+
    \\"{}\\": \\"localIdentName__{}__Mae71ybF\\",
    4115+
    \\"foo.bar\\": \\"localIdentName__foo.bar__TpLCT2g4\\",
    4116+
    \\":hover\\": \\"localIdentName__:hover__l6Av_vs8\\",
    4117+
    \\":hover:focus:active\\": \\"localIdentName__:hover:focus:active__ZGmd9HMc\\",
    4118+
    \\"[attr=value]\\": \\"localIdentName__[attr=value]__KPlJewNi\\",
    4119+
    \\"f/o/o\\": \\"localIdentName__f/o/o__DIrFdFnB\\",
    4120+
    \\"f\\\\\\\\o\\\\\\\\o\\": \\"localIdentName__f\\\\\\\\o\\\\\\\\o__H1knt1tA\\",
    4121+
    \\"f*o*o\\": \\"localIdentName__f*o*o___vAKu2Il\\",
    4122+
    \\"f!o!o\\": \\"localIdentName__f!o!o__APY_BKpa\\",
    4123+
    \\"f'o'o\\": \\"localIdentName__f'o'o__jTuAkufd\\",
    4124+
    \\"f~o~o\\": \\"localIdentName__f~o~o__S4VvFBeH\\",
    4125+
    \\"f+o+o\\": \\"localIdentName__f+o+o__AWIsfyEk\\",
    4126+
    \\"foo/bar\\": \\"localIdentName__foo/bar__DhIde1Wb\\",
    4127+
    \\"foo\\\\\\\\bar\\": \\"localIdentName__foo\\\\\\\\bar__aeKkgCs_\\",
    4128+
    \\"foo/bar/baz\\": \\"localIdentName__foo/bar/baz__QFT18bFi\\",
    4129+
    \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"localIdentName__foo\\\\\\\\bar\\\\\\\\baz__uM3RYQs7\\"
    4130+
    };
    4131+
    export default ___CSS_LOADER_EXPORT___;
    4132+
    "
    4133+
    `;
    4134+
    4135+
    exports[`"modules" option should work and respect the "localIdentRegExp" option: result 1`] = `
    4136+
    Array [
    4137+
    Array [
    4138+
    "./modules/localIdentName/localIdentName.css",
    4139+
    ".localIdentName__test__HovVWrUT {
    4140+
    background: red;
    4141+
    }
    4142+
    4143+
    .localIdentName___test___1mLQ0KY {
    4144+
    background: blue;
    4145+
    }
    4146+
    4147+
    .localIdentName__className__MMk_yFMI {
    4148+
    background: red;
    4149+
    }
    4150+
    4151+
    #localIdentName__someId__f_mZz_4m {
    4152+
    background: green;
    4153+
    }
    4154+
    4155+
    .localIdentName__className__MMk_yFMI .localIdentName__subClass__FYyIWexD {
    4156+
    color: green;
    4157+
    }
    4158+
    4159+
    #localIdentName__someId__f_mZz_4m .localIdentName__subClass__FYyIWexD {
    4160+
    color: blue;
    4161+
    }
    4162+
    4163+
    .localIdentName__-a0-34a___f__r_hifewi {
    4164+
    color: red;
    4165+
    }
    4166+
    4167+
    .localIdentName__m_x_\\\\@__yUrnJ_pW {
    4168+
    margin-left: auto !important;
    4169+
    margin-right: auto !important;
    4170+
    }
    4171+
    4172+
    .localIdentName__B\\\\&W\\\\?__O_Xkei1D {
    4173+
    margin-left: auto !important;
    4174+
    margin-right: auto !important;
    4175+
    }
    4176+
    4177+
    /* matches elements with class=\\":\`(\\" */
    4178+
    .localIdentName__\\\\3A \\\\\`\\\\(___rpCeu5p {
    4179+
    color: aqua;
    4180+
    }
    4181+
    4182+
    /* matches elements with class=\\"1a2b3c\\" */
    4183+
    .localIdentName__\\\\31 a2b3c__mxXeAFeh {
    4184+
    color: aliceblue;
    4185+
    }
    4186+
    4187+
    /* matches the element with id=\\"#fake-id\\" */
    4188+
    #localIdentName__\\\\#fake-id___92k79k_ {
    4189+
    color: antiquewhite;
    4190+
    }
    4191+
    4192+
    /* matches the element with id=\\"-a-b-c-\\" */
    4193+
    #localIdentName__-a-b-c-__c0kkJWCl {
    4194+
    color: azure;
    4195+
    }
    4196+
    4197+
    /* matches the element with id=\\"©\\" */
    4198+
    #localIdentName__©__DLosMLOu {
    4199+
    color: black;
    4200+
    }
    4201+
    4202+
    .localIdentName__♥__HQMfjUZe { background: lime; }
    4203+
    .localIdentName__©__DLosMLOu { background: lime; }
    4204+
    .localIdentName__“‘’”__bS0LrUqK { background: lime; }
    4205+
    .localIdentName__☺☃__F0_yWUDv { background: lime; }
    4206+
    .localIdentName__⌘⌥__VyeHlHnB { background: lime; }
    4207+
    .localIdentName__𝄞♪♩♫♬__Qi7pfuLh { background: lime; }
    4208+
    .localIdentName__💩__CjG3lWNh { background: lime; }
    4209+
    .localIdentName__\\\\?__heeATAtr { background: lime; }
    4210+
    .localIdentName__\\\\@__YofbbuSi { background: lime; }
    4211+
    .localIdentName__\\\\.___29WwWt8 { background: lime; }
    4212+
    .localIdentName__\\\\3A \\\\)__I_4AeARK { background: lime; }
    4213+
    .localIdentName__\\\\3A \\\\\`\\\\(___rpCeu5p { background: lime; }
    4214+
    .localIdentName__\\\\31 23___Oc_nRVO { background: lime; }
    4215+
    .localIdentName__\\\\31 a2b3c__mxXeAFeh { background: lime; }
    4216+
    .localIdentName__\\\\<p\\\\>__KBVLvvCB { background: lime; }
    4217+
    .localIdentName__\\\\<\\\\>\\\\<\\\\<\\\\<\\\\>\\\\>\\\\<\\\\>__vOWmh2fN { background: lime; }
    4218+
    .localIdentName__\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\[\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\>\\\\+\\\\<\\\\<\\\\<\\\\<\\\\-\\\\]\\\\>\\\\+\\\\+\\\\.\\\\>\\\\+\\\\.\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\.\\\\+\\\\+\\\\+\\\\.\\\\>\\\\+\\\\+\\\\.\\\\<\\\\<\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\>\\\\.\\\\+\\\\+\\\\+\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\>\\\\+\\\\.\\\\>\\\\.___D32kH5S { background: lime; }
    4219+
    .localIdentName__\\\\#__LpBEGYch { background: lime; }
    4220+
    .localIdentName__\\\\#\\\\#__wZKDT2QR { background: lime; }
    4221+
    .localIdentName__\\\\#\\\\.\\\\#\\\\.\\\\#__oGI7_Chv { background: lime; }
    4222+
    .localIdentName__\\\\___myeULb2G { background: lime; }
    4223+
    .localIdentName__\\\\{\\\\}__Mae71ybF { background: lime; }
    4224+
    .localIdentName__\\\\#fake\\\\-id___92k79k_ { background: lime; }
    4225+
    .localIdentName__foo\\\\.bar__TpLCT2g4 { background: lime; }
    4226+
    .localIdentName__\\\\3A hover__l6Av_vs8 { background: lime; }
    4227+
    .localIdentName__\\\\3A hover\\\\3A focus\\\\3A active__ZGmd9HMc { background: lime; }
    4228+
    .localIdentName__\\\\[attr\\\\=value\\\\]__KPlJewNi { background: lime; }
    4229+
    .localIdentName__f\\\\/o\\\\/o__DIrFdFnB { background: lime; }
    4230+
    .localIdentName__f\\\\\\\\o\\\\\\\\o__H1knt1tA { background: lime; }
    4231+
    .localIdentName__f\\\\*o\\\\*o___vAKu2Il { background: lime; }
    4232+
    .localIdentName__f\\\\!o\\\\!o__APY_BKpa { background: lime; }
    4233+
    .localIdentName__f\\\\'o\\\\'o__jTuAkufd { background: lime; }
    4234+
    .localIdentName__f\\\\~o\\\\~o__S4VvFBeH { background: lime; }
    4235+
    .localIdentName__f\\\\+o\\\\+o__AWIsfyEk { background 67F6 : lime; }
    4236+
    4237+
    .localIdentName__foo\\\\/bar__DhIde1Wb {
    4238+
    background: hotpink;
    4239+
    }
    4240+
    4241+
    .localIdentName__foo\\\\\\\\bar__aeKkgCs_ {
    4242+
    background: hotpink;
    4243+
    }
    4244+
    4245+
    .localIdentName__foo\\\\/bar\\\\/baz__QFT18bFi {
    4246+
    background: hotpink;
    4247+
    }
    4248+
    4249+
    .localIdentName__foo\\\\\\\\bar\\\\\\\\baz__uM3RYQs7 {
    4250+
    background: hotpink;
    4251+
    }
    4252+
    ",
    4253+
    "",
    4254+
    ],
    4255+
    ]
    4256+
    `;
    4257+
    4258+
    exports[`"modules" option should work and respect the "localIdentRegExp" option: warnings 1`] = `Array []`;
    4259+
    40734260
    exports[`"modules" option should work and respect the "path" placeholder: errors 1`] = `Array []`;
    40744261

    40754262
    exports[`"modules" option should work and respect the "path" placeholder: module 1`] = `

    test/modules-option.test.js

    Lines changed: 19 additions & 0 deletions
    Original file line numberDiff line numberDiff line change
    @@ -340,6 +340,25 @@ describe('"modules" option', () => {
    340340
    expect(getErrors(stats)).toMatchSnapshot("errors");
    341341
    });
    342342

    343+
    it('should work and respect the "localIdentRegExp" option', async () => {
    344+
    const compiler = getCompiler("./modules/localIdentName/localIdentName.js", {
    345+
    modules: {
    346+
    localIdentName: "[1]__[local]__[hash:base64:8]",
    347+
    localIdentRegExp: /[/\\]([^/\\]+?)(?:\.module)?\.[^./\\]+$/,
    348+
    },
    349+
    });
    350+
    const stats = await compile(compiler);
    351+
    352+
    expect(
    353+
    getModuleSource("./modules/localIdentName/localIdentName.css", stats)
    354+
    ).toMatchSnapshot("module");
    355+
    expect(getExecutedCode("main.bundle.js", compiler, stats)).toMatchSnapshot(
    356+
    "result"
    357+
    );
    358+
    expect(getWarnings(stats)).toMatchSnapshot("warnings");
    359+
    expect(getErrors(stats)).toMatchSnapshot("errors");
    360+
    });
    361+
    343362
    it('should work and has "undefined" context if no context was given', async () => {
    344363
    expect.assertions(58);
    345364

    0 commit comments

    Comments
     (0)