Skip to content

Commit

Permalink
feat: collect assets from modules
Browse files Browse the repository at this point in the history
  • Loading branch information
piecyk committed Sep 12, 2018
1 parent dd141f2 commit 8e97331
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 2 deletions.
9 changes: 8 additions & 1 deletion src/index.js
Expand Up @@ -138,14 +138,21 @@ class MiniCssExtractPlugin {
compilation.hooks.normalModuleLoader.tap(pluginName, (lc, m) => {
const loaderContext = lc;
const module = m;
loaderContext[MODULE_TYPE] = (content) => {
loaderContext[MODULE_TYPE] = (content, assets) => {
if (!Array.isArray(content) && content != null) {
throw new Error(
`Exported value was not extracted as an array: ${JSON.stringify(
content
)}`
);
}

module.buildInfo = module.buildInfo || { assets: {} };
module.buildInfo.assets = {
...module.buildInfo.assets,
...assets,
};

const identifierCountMap = new Map();
for (const line of content) {
const count = identifierCountMap.get(line.identifier) || 0;
Expand Down
10 changes: 9 additions & 1 deletion src/loader.js
Expand Up @@ -76,11 +76,19 @@ export function pitch(request) {
);

let source;
let assets = {};
childCompiler.hooks.afterCompile.tap(pluginName, (compilation) => {
source =
compilation.assets[childFilename] &&
compilation.assets[childFilename].source();

// Collect assets from modules
compilation.modules.forEach((module) => {
if (module.buildInfo && module.buildInfo.assets) {
assets = { ...assets, ...module.buildInfo.assets };
}
});

// Remove all chunk assets
compilation.chunks.forEach((chunk) => {
chunk.files.forEach((file) => {
Expand Down Expand Up @@ -123,7 +131,7 @@ export function pitch(request) {
};
});
}
this[MODULE_TYPE](text);
this[MODULE_TYPE](text, assets);
} catch (e) {
return callback(e);
}
Expand Down

0 comments on commit 8e97331

Please sign in to comment.