export function createChain()

in packages/plugin-webpack5/src/webpackUtils.ts [74:124]


export function createChain(dir: string): Chain {
  /**
   * local config of webpack
   */
  const chain = new Chain();

  /**
   * default config, include context, entry, output and mode.
   */
  chain
    .context(dir)
    .entry('index')
    .add('src/index.js')
    .end()
    .output.path(path.resolve(dir, 'dist'))
    .filename('[name].bundle.js')
    .end()
    .mode('production') // production env as default
    .when(isDev, config => {
      config.mode('development');
    })
    .resolve.fallback.merge({
      assert: require.resolve('assert'),
      buffer: require.resolve('buffer'),
      console: require.resolve('console-browserify'),
      constants: require.resolve('constants-browserify'),
      crypto: require.resolve('crypto-browserify'),
      domain: require.resolve('domain-browser'),
      events: require.resolve('events'),
      http: require.resolve('stream-http'),
      https: require.resolve('https-browserify'),
      os: require.resolve('os-browserify/browser'),
      path: require.resolve('path-browserify'),
      punycode: require.resolve('punycode'),
      process: require.resolve('process/browser'),
      querystring: require.resolve('querystring-es3'),
      stream: require.resolve('stream-browserify'),
      string_decoder: require.resolve('string_decoder'),
      sys: require.resolve('util'),
      timers: require.resolve('timers-browserify'),
      tty: require.resolve('tty-browserify'),
      url: require.resolve('url'),
      util: require.resolve('util'),
      vm: require.resolve('vm-browserify'),
      zlib: require.resolve('browserify-zlib'),
    });

  debug('engine', 'default webpack config: %s', chain.toString());

  return chain;
}