in packages/build-plugin-lce/src/common/htmlInjection.js [83:121]
function modifyHTMLPluginOptions(config, pluginName, options, params) {
if (config.plugins.get(pluginName)) {
// spa HtmlWebpackPlugin
config.plugin(pluginName).tap(([args]) => {
const defaultValues = {};
Object.keys(HTML_POSITIONS).forEach((positionKey) => {
defaultValues[positionKey] = HTML_POSITIONS[positionKey].defaultValue;
});
/**
* for getDemoConfig needs extra info to inject to html.
* merge htmlAppendInjection to params for getDemoConfig.
*/
const { htmlAppendInjection } = args || {};
const _params = {
...params,
};
if (htmlAppendInjection) {
Object.keys(htmlAppendInjection).forEach((position) => {
// eslint-disable-next-line no-param-reassign
_params[position] = (_params[position] || '').concat(htmlAppendInjection[position]);
});
}
const pluginOptions = {
...args,
templateParameters: {
...(args.templateParameters || {}),
...defaultValues, // default value of html positions
..._params,
},
...options,
};
return [pluginOptions];
});
}
}