docs: function createWebpackConfig(dir, name, sharedOpts, compOpts, pluginOpts) {
    const pascalName = _.upperFirst(_.camelCase(name));
  
    // SHARED WEBPACK CONFIG
    let sharedConfig = merge(baseConfig, {
      mode: 'production',
      devtool: 'source-map',
      output: {
        path: `${dir}/${config.outDir}`,
        filename: '[name].js',
        library: pascalName,
        libraryTarget: 'umd',
        umdNamedDefine: true,
        globalObject: 'this',
      },
      optimization: {
        minimize: false,
      },
      plugins: [
        new OptimizeCSSPlugin({
          cssProcessorOptions: {
            safe: true,
          }
        }),
        new StyleLintPlugin({
          files: ['**/*.postcss', '**/*.pcss', '**/*.vue']
        }),
        new MiniCssExtractPlugin({
          filename: `${name}.css`,
        }),
      ]
    });
    sharedConfig = merge(sharedConfig, sharedOpts);
  
    // COMPONENT CONFIG
    let compConfig = merge(sharedConfig, {
      entry: {
        [`${name}`]: `${dir}/build/main.js`,
      },
    });
    compConfig = merge(compConfig, compOpts);
  
    // PLUGIN CONFIG
    let pluginConfig = merge(sharedConfig, {
      entry: {
        plugin: `${dir}/build/plugin.js`
      },
    });
    pluginConfig = merge(pluginConfig, pluginOpts);
  
    return [compConfig, pluginConfig];
  }