Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitcafae23

Browse files
feat: added options to control renaming of identifiers in CSS modules
1 parente8dca82 commitcafae23

20 files changed

+10621
-876
lines changed

‎.changeset/green-jeans-flow.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"webpack":minor
3+
---
4+
5+
Added options to control the renaming of at-rules and various identifiers in CSS modules.

‎cspell.json‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,7 @@
248248
"submodules",
249249
"subpath",
250250
"substack",
251+
"subgrid",
251252
"symlinked",
252253
"syncloader",
253254
"systemjs",

‎declarations/WebpackOptions.d.ts‎

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -786,6 +786,30 @@ export type CssGeneratorLocalIdentName = string;
786786
* Configure how CSS content is exported as default.
787787
*/
788788
exporttypeCssParserExportType="link"|"text"|"css-style-sheet";
789+
/**
790+
* Enable/disable renaming of `@keyframes`.
791+
*/
792+
exporttypeCssParserAnimation=boolean;
793+
/**
794+
* Enable/disable renaming of `@container` names.
795+
*/
796+
exporttypeCssParserContainer=boolean;
797+
/**
798+
* Enable/disable renaming of custom identifiers.
799+
*/
800+
exporttypeCssParserCustomIdents=boolean;
801+
/**
802+
* Enable/disable renaming of dashed identifiers, e. g. custom properties.
803+
*/
804+
exporttypeCssParserDashedIdents=boolean;
805+
/**
806+
* Enable/disable renaming of `@function` names.
807+
*/
808+
exporttypeCssParserFunction=boolean;
809+
/**
810+
* Enable/disable renaming of grid identifiers.
811+
*/
812+
exporttypeCssParserGrid=boolean;
789813
/**
790814
* Enable/disable `@import` at-rules handling.
791815
*/
@@ -3011,10 +3035,34 @@ export interface CssModuleGeneratorOptions {
30113035
* Parser options for css/module modules.
30123036
*/
30133037
exportinterfaceCssModuleParserOptions{
3038+
/**
3039+
* Enable/disable renaming of `@keyframes`.
3040+
*/
3041+
animation?:CssParserAnimation;
3042+
/**
3043+
* Enable/disable renaming of `@container` names.
3044+
*/
3045+
container?:CssParserContainer;
3046+
/**
3047+
* Enable/disable renaming of custom identifiers.
3048+
*/
3049+
customIdents?:CssParserCustomIdents;
3050+
/**
3051+
* Enable/disable renaming of dashed identifiers, e. g. custom properties.
3052+
*/
3053+
dashedIdents?:CssParserDashedIdents;
30143054
/**
30153055
* Configure how CSS content is exported as default.
30163056
*/
30173057
exportType?:CssParserExportType;
3058+
/**
3059+
* Enable/disable renaming of `@function` names.
3060+
*/
3061+
function?:CssParserFunction;
3062+
/**
3063+
* Enable/disable renaming of grid identifiers.
3064+
*/
3065+
grid?:CssParserGrid;
30183066
/**
30193067
* Enable/disable `@import` at-rules handling.
30203068
*/

‎lib/config/defaults.js‎

Lines changed: 85 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -894,6 +894,51 @@ const applyModuleDefaults = (
894894
true
895895
);
896896

897+
for(consttypeof[
898+
CSS_MODULE_TYPE_AUTO,
899+
CSS_MODULE_TYPE_MODULE,
900+
CSS_MODULE_TYPE_GLOBAL
901+
]){
902+
F(module.parser,type,()=>({}));
903+
904+
D(
905+
/**@type {NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]> | NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]> | NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_GLOBAL]>} */
906+
(module.parser[type]),
907+
"animation",
908+
true
909+
);
910+
D(
911+
/**@type {NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]> | NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]> | NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_GLOBAL]>} */
912+
(module.parser[type]),
913+
"container",
914+
true
915+
);
916+
D(
917+
/**@type {NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]> | NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]> | NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_GLOBAL]>} */
918+
(module.parser[type]),
919+
"customIdents",
920+
true
921+
);
922+
D(
923+
/**@type {NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]> | NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]> | NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_GLOBAL]>} */
924+
(module.parser[type]),
925+
"dashedIdents",
926+
true
927+
);
928+
D(
929+
/**@type {NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]> | NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]> | NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_GLOBAL]>} */
930+
(module.parser[type]),
931+
"function",
932+
true
933+
);
934+
D(
935+
/**@type {NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]> | NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]> | NonNullable<ParserOptionsByModuleTypeKnown[CSS_MODULE_TYPE_GLOBAL]>} */
936+
(module.parser[type]),
937+
"grid",
938+
true
939+
);
940+
}
941+
897942
F(module.generator,CSS_MODULE_TYPE,()=>({}));
898943

899944
applyCssGeneratorOptionsDefaults(
@@ -913,101 +958,48 @@ const applyModuleDefaults = (
913958
constlocalIdentHashDigestLength=6;
914959
constexportsConvention="as-is";
915960

916-
F(module.generator,CSS_MODULE_TYPE_AUTO,()=>({}));
917-
D(
918-
/**@type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]>} */
919-
(module.generator[CSS_MODULE_TYPE_AUTO]),
920-
"localIdentName",
921-
localIdentName
922-
);
923-
D(
924-
/**@type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]>} */
925-
(module.generator[CSS_MODULE_TYPE_AUTO]),
926-
"localIdentHashSalt",
927-
localIdentHashSalt
928-
);
929-
D(
930-
/**@type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]>} */
931-
(module.generator[CSS_MODULE_TYPE_AUTO]),
932-
"localIdentHashDigest",
933-
localIdentHashDigest
934-
);
935-
D(
936-
/**@type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]>} */
937-
(module.generator[CSS_MODULE_TYPE_AUTO]),
938-
"localIdentHashDigestLength",
939-
localIdentHashDigestLength
940-
);
941-
D(
942-
/**@type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]>} */
943-
(module.generator[CSS_MODULE_TYPE_AUTO]),
944-
"exportsConvention",
945-
exportsConvention
946-
);
961+
for(consttypeof[
962+
CSS_MODULE_TYPE_AUTO,
963+
CSS_MODULE_TYPE_MODULE,
964+
CSS_MODULE_TYPE_GLOBAL
965+
]){
966+
F(module.generator,type,()=>({}));
947967

948-
F(module.generator,CSS_MODULE_TYPE_MODULE,()=>({}));
949-
D(
950-
/**@type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]>} */
951-
(module.generator[CSS_MODULE_TYPE_MODULE]),
952-
"localIdentName",
953-
localIdentName
954-
);
955-
D(
956-
/**@type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]>} */
957-
(module.generator[CSS_MODULE_TYPE_MODULE]),
958-
"localIdentHashSalt",
959-
localIdentHashSalt
960-
);
961-
D(
962-
/**@type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]>} */
963-
(module.generator[CSS_MODULE_TYPE_MODULE]),
964-
"localIdentHashDigest",
965-
localIdentHashDigest
966-
);
967-
D(
968-
/**@type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]>} */
969-
(module.generator[CSS_MODULE_TYPE_MODULE]),
970-
"localIdentHashDigestLength",
971-
localIdentHashDigestLength
972-
);
973-
D(
974-
/**@type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]>} */
975-
(module.generator[CSS_MODULE_TYPE_MODULE]),
976-
"exportsConvention",
977-
exportsConvention
978-
);
968+
D(
969+
/**@type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]> | NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]> | NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_GLOBAL]>} */
970+
(module.generator[type]),
971+
"localIdentName",
972+
localIdentName
973+
);
979974

980-
F(module.generator,CSS_MODULE_TYPE_GLOBAL,()=>({}));
981-
D(
982-
/**@type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_GLOBAL]>} */
983-
(module.generator[CSS_MODULE_TYPE_GLOBAL]),
984-
"localIdentName",
985-
localIdentName
986-
);
987-
D(
988-
/**@type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_GLOBAL]>} */
989-
(module.generator[CSS_MODULE_TYPE_GLOBAL]),
990-
"localIdentHashSalt",
991-
localIdentHashSalt
992-
);
993-
D(
994-
/**@type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]>} */
995-
(module.generator[CSS_MODULE_TYPE_GLOBAL]),
996-
"localIdentHashDigest",
997-
localIdentHashDigest
998-
);
999-
D(
1000-
/**@type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]>} */
1001-
(module.generator[CSS_MODULE_TYPE_GLOBAL]),
1002-
"localIdentHashDigestLength",
1003-
localIdentHashDigestLength
1004-
);
1005-
D(
1006-
/**@type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_GLOBAL]>} */
1007-
(module.generator[CSS_MODULE_TYPE_GLOBAL]),
1008-
"exportsConvention",
1009-
exportsConvention
1010-
);
975+
D(
976+
/**@type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]> | NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]> | NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_GLOBAL]>} */
977+
(module.generator[type]),
978+
"localIdentHashSalt",
979+
localIdentHashSalt
980+
);
981+
982+
D(
983+
/**@type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]> | NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]> | NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]>} */
984+
(module.generator[type]),
985+
"localIdentHashDigest",
986+
localIdentHashDigest
987+
);
988+
989+
D(
990+
/**@type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]> | NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]> | NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]>} */
991+
(module.generator[type]),
992+
"localIdentHashDigestLength",
993+
localIdentHashDigestLength
994+
);
995+
996+
D(
997+
/**@type {NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_AUTO]> | NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_MODULE]> | NonNullable<GeneratorOptionsByModuleTypeKnown[CSS_MODULE_TYPE_GLOBAL]>} */
998+
(module.generator[type]),
999+
"exportsConvention",
1000+
exportsConvention
1001+
);
1002+
}
10111003
}
10121004

10131005
A(module,"defaultRules",()=>{

‎lib/css/CssModulesPlugin.js‎

Lines changed: 15 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -153,17 +153,17 @@ const validateParserOptions = {
153153
parserValidationOptions
154154
),
155155
"css/auto":createSchemaValidation(
156-
require("../../schemas/plugins/css/CssParserOptions.check"),
156+
require("../../schemas/plugins/css/CssModuleParserOptions.check"),
157157
()=>getSchema("CssModuleParserOptions"),
158158
parserValidationOptions
159159
),
160160
"css/module":createSchemaValidation(
161-
require("../../schemas/plugins/css/CssParserOptions.check"),
161+
require("../../schemas/plugins/css/CssModuleParserOptions.check"),
162162
()=>getSchema("CssModuleParserOptions"),
163163
parserValidationOptions
164164
),
165165
"css/global":createSchemaValidation(
166-
require("../../schemas/plugins/css/CssParserOptions.check"),
166+
require("../../schemas/plugins/css/CssModuleParserOptions.check"),
167167
()=>getSchema("CssModuleParserOptions"),
168168
parserValidationOptions
169169
)
@@ -260,45 +260,31 @@ class CssModulesPlugin {
260260
normalModuleFactory.hooks.createParser
261261
.for(type)
262262
.tap(PLUGIN_NAME,(parserOptions)=>{
263-
validateParserOptions[type](parserOptions);
264-
const{
265-
url,
266-
import:importOption,
267-
namedExports,
268-
exportType
269-
}=parserOptions;
270-
271263
switch(type){
272264
caseCSS_MODULE_TYPE:
273-
returnnewCssParser({
274-
importOption,
275-
url,
276-
namedExports,
277-
exportType
278-
});
265+
validateParserOptions[type](parserOptions);
266+
267+
returnnewCssParser(parserOptions);
279268
caseCSS_MODULE_TYPE_GLOBAL:
269+
validateParserOptions[type](parserOptions);
270+
280271
returnnewCssParser({
281272
defaultMode:"global",
282-
importOption,
283-
url,
284-
namedExports,
285-
exportType
273+
...parserOptions
286274
});
287275
caseCSS_MODULE_TYPE_MODULE:
276+
validateParserOptions[type](parserOptions);
277+
288278
returnnewCssParser({
289279
defaultMode:"local",
290-
importOption,
291-
url,
292-
namedExports,
293-
exportType
280+
...parserOptions
294281
});
295282
caseCSS_MODULE_TYPE_AUTO:
283+
validateParserOptions[type](parserOptions);
284+
296285
returnnewCssParser({
297286
defaultMode:"auto",
298-
importOption,
299-
url,
300-
namedExports,
301-
exportType
287+
...parserOptions
302288
});
303289
}
304290
});

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp