Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,10 @@ const configuration = clientConfiguration(baseConfiguration, settings, {
silent: true,

// By default, chunk_info_filename is `webpack-chunks.json`
chunk_info_filename: 'submodule-webpack-chunks.json'
chunk_info_filename: 'submodule-webpack-chunks.json',

// Will not inlcude chunks that are not required for initial page load. ( dynamicly imported, etc. )
skipDynamicChunks: false
}
```

Expand Down
21 changes: 18 additions & 3 deletions source/chunks plugin.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ ChunkFileNamesPlugin.prototype.apply = function(compiler)

// Generates chunk filename info
// (`assets_base_url` will be prepended to chunk file names)
function filename_info(json, assets_base_url)
function filename_info(json, assets_base_url, options)
{
const assets_by_chunk = json.assetsByChunkName

Expand Down Expand Up @@ -53,8 +53,23 @@ function filename_info(json, assets_base_url)
.map(name => assets_base_url + name)
}

// leave only initial ( non dynamic ) chunks
function filterNonInitialChunks(chunkName) {
const chunkObj = json.chunks.find(chunkObj => chunkObj.names && chunkObj.names[0] === chunkName);
return chunkObj && chunkObj.initial;
}

function hasInitialChunks() {
return !!(json.chunks && json.chunks.length && json.chunks.find(chunkObj => chunkObj.initial));
}

let chunkNames = Object.keys(assets_by_chunk);
if (hasInitialChunks() && options.skipDynamicChunks) {
chunkNames = chunkNames.filter(filterNonInitialChunks);
}

// for each chunk name ("main", "common", ...)
Object.keys(assets_by_chunk).forEach(function(name)
chunkNames.forEach(function(name)
{
// log.debug(`getting javascript and styles for chunk "${name}"`)

Expand Down Expand Up @@ -118,5 +133,5 @@ function writeChunkFileNames(stats, options, webpack_configuration)
const output_file_path = chunk_info_file_path(webpack_configuration, options.chunk_info_filename)

// Write chunk filename info to disk
fs.outputFileSync(output_file_path, JSON.stringify(filename_info(json, assets_base_url)))
fs.outputFileSync(output_file_path, JSON.stringify(filename_info(json, assets_base_url, options)))
}
8 changes: 6 additions & 2 deletions source/client configuration.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,11 @@ export default function client_configuration(webpack_configuration, settings, op
// because `webpack-dev-server` seems to alter it
// by changing the already predefined `.output.path`.
//
new chunks_plugin(clone(configuration), { silent: settings.silent, chunk_info_filename: settings.chunk_info_filename })
new chunks_plugin(clone(configuration), {
silent: settings.silent,
chunk_info_filename: settings.chunk_info_filename,
skipDynamicChunks: settings.skipDynamicChunks || false
})
)

// CSS bundle filename (if specified)
Expand Down Expand Up @@ -228,4 +232,4 @@ function generate_extract_css_loaders(after_style_loader, development, extract_c
}

return extract_css_loaders
}
}