Skip to content

Commit 4753ee1

Browse files
committed
fix: structure
1 parent f24f7cb commit 4753ee1

File tree

1 file changed

+61
-48
lines changed

1 file changed

+61
-48
lines changed

src/index.js

Lines changed: 61 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class CssDependency extends webpack.Dependency {
2424
{ identifier, content, media, sourceMap },
2525
context,
2626
identifierIndex,
27-
theme,
27+
theme
2828
) {
2929
super();
3030

@@ -150,7 +150,7 @@ class MiniCssExtractPlugin {
150150
);
151151
}
152152
}
153-
this.themes = ['default'].concat(this.options.themes);
153+
this.themes = ['default'].concat(this.options.themes || []);
154154
}
155155

156156
apply(compiler) {
@@ -159,7 +159,7 @@ class MiniCssExtractPlugin {
159159
const loaderContext = lc;
160160
const module = m;
161161

162-
loaderContext.themes = this.themes;
162+
loaderContext.themes = this.themes;
163163
loaderContext[MODULE_TYPE] = (content, theme) => {
164164
if (!Array.isArray(content) && content != null) {
165165
throw new Error(
@@ -174,7 +174,9 @@ class MiniCssExtractPlugin {
174174
for (const line of content) {
175175
const count = identifierCountMap.get(line.identifier) || 0;
176176

177-
module.addDependency(new CssDependency(line, m.context, count, theme));
177+
module.addDependency(
178+
new CssDependency(line, m.context, count, theme)
179+
);
178180
identifierCountMap.set(line.identifier, count + 1);
179181
}
180182
};
@@ -193,62 +195,73 @@ class MiniCssExtractPlugin {
193195
compilation.mainTemplate.hooks.renderManifest.tap(
194196
pluginName,
195197
(result, { chunk }) => {
196-
for (const theme of this.themes) {
197-
const renderedModules = Array.from(chunk.modulesIterable).filter(
198-
(module) => module.type === MODULE_TYPE && module.theme === theme
199-
);
198+
for (const theme of this.themes) {
199+
const renderedModules = Array.from(chunk.modulesIterable).filter(
200+
(module) => module.type === MODULE_TYPE && module.theme === theme
201+
);
200202

201-
if (renderedModules.length > 0) {
202-
result.push({
203-
render: () =>
204-
this.renderContentAsset(
205-
compilation,
203+
if (renderedModules.length > 0) {
204+
result.push({
205+
render: () =>
206+
this.renderContentAsset(
207+
compilation,
208+
chunk,
209+
renderedModules,
210+
compilation.runtimeTemplate.requestShortener
211+
),
212+
filenameTemplate: ({ chunk: chunkData }) => {
213+
return theme === 'default'
214+
? this.options.moduleFilename(chunkData)
215+
: this.options.themeModuleFilename(theme);
216+
},
217+
pathOptions: {
206218
chunk,
207-
renderedModules,
208-
compilation.runtimeTemplate.requestShortener
209-
),
210-
filenameTemplate: ({ chunk: chunkData }) => {
211-
return theme === 'default' ? this.options.moduleFilename(chunkData) : this.options.themeModuleFilename(theme)
212-
},
213-
pathOptions: {
214-
chunk,
215-
contentHashType: MODULE_TYPE,
216-
},
217-
identifier: theme !== 'default' ? `${pluginName}.theme.${chunk.id}`:`${pluginName}.${chunk.id}`,
218-
hash: chunk.contentHash[MODULE_TYPE],
219-
});
219+
contentHashType: MODULE_TYPE,
220+
},
221+
identifier:
222+
theme !== 'default'
223+
? `${pluginName}.theme.${chunk.id}`
224+
: `${pluginName}.${chunk.id}`,
225+
hash: chunk.contentHash[MODULE_TYPE],
226+
});
227+
}
220228
}
221229
}
222-
}
223230
);
224231

225232
compilation.chunkTemplate.hooks.renderManifest.tap(
226233
pluginName,
227234
(result, { chunk }) => {
228-
for(const theme of this.themes) {
229-
const renderedModules = Array.from(chunk.modulesIterable).filter(
230-
(module) => module.type === MODULE_TYPE && module.theme === theme
231-
);
232-
if (renderedModules.length > 0) {
233-
result.push({
234-
render: () =>
235-
this.renderContentAsset(
236-
compilation,
235+
for (const theme of this.themes) {
236+
const renderedModules = Array.from(chunk.modulesIterable).filter(
237+
(module) => module.type === MODULE_TYPE && module.theme === theme
238+
);
239+
if (renderedModules.length > 0) {
240+
result.push({
241+
render: () =>
242+
this.renderContentAsset(
243+
compilation,
244+
chunk,
245+
renderedModules,
246+
compilation.runtimeTemplate.requestShortener
247+
),
248+
filenameTemplate:
249+
theme === 'default'
250+
? this.options.chunkFilename
251+
: `theme-${theme}-${this.options.chunkFilename}`,
252+
pathOptions: {
237253
chunk,
238-
renderedModules,
239-
compilation.runtimeTemplate.requestShortener
240-
),
241-
filenameTemplate: theme === 'default' ? this.options.chunkFilename: `theme-${theme}-${this.options.chunkFilename}`,
242-
pathOptions: {
243-
chunk,
244-
contentHashType: MODULE_TYPE,
245-
},
246-
identifier: theme !== 'default' ? `${pluginName}.${theme}.${chunk.id}`: `${pluginName}.${chunk.id}`,
247-
hash: chunk.contentHash[MODULE_TYPE],
248-
});
254+
contentHashType: MODULE_TYPE,
255+
},
256+
identifier:
257+
theme !== 'default'
258+
? `${pluginName}.${theme}.${chunk.id}`
259+
: `${pluginName}.${chunk.id}`,
260+
hash: chunk.contentHash[MODULE_TYPE],
261+
});
262+
}
249263
}
250264
}
251-
}
252265
);
253266

254267
compilation.mainTemplate.hooks.hashForChunk.tap(

0 commit comments

Comments
 (0)