export function webpackConfigure()

in packages/plugin-webpack/src/webpackUtils.ts [98:143]


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
      };
    }
  }

  // @ts-ignore
  return webpackMerge(_chain.toConfig(), configByUser);
  // _chain.merge(configByUser);

  // return _chain;
}