in packages/plugin-webpack5/src/webpackUtils.ts [132:173]
export function webpackConfigure(
api: PluginAPI,
opts: PluginAPIOpt,
chain?: Chain
): webpack.Configuration {
let _chain = chain;
const currrentDir = api.getCwd();
if (!_chain) {
_chain = createChain(currrentDir); // get default config
}
const directory = opts.directory || currrentDir;
const filename = opts.filename || 'webpack.config.js';
let configByUser = opts.config || null; // get user config
/**
* Get user config according to path, if user did not pass the config.
*/
if (!configByUser) {
configByUser = require(path.resolve(directory, filename));
}
if (configByUser.entry) {
/**
* delete default entry
*/
_chain.entryPoints.clear();
/**
* format entry from String to Object, needed by webpack-chain, too.
*/
if (typeof configByUser.entry === 'string') {
configByUser.entry = {
index: configByUser.entry
};
}
}
return webpackMerge.merge(_chain.toConfig(), configByUser);
}