webpack.config.js 1.04 KB
const path = require('path')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const nodeExternals = require('webpack-node-externals')

module.exports = {
  mode: 'production',
  entry: './src/index.tsx',
  output: {
    filename: '{{ projectName }}.js',
    path: path.resolve(__dirname, 'dist'),
    library: '{{ projectName }}',
    libraryTarget: 'umd'
  },
  resolve: {
    extensions: [
      '.ts',
      '.tsx',
      '.js'
    ]
  },
  module: {
    rules: [{
      test: /\.tsx?$/,
      loader: 'babel-loader'
    }, {
      test: /\.less$/,
      use: [
        MiniCssExtractPlugin.loader,
        {
          loader: 'css-loader',
          options: {
            modules: true,
            localIdentName: '{{ projectName }}__[local]__[hash:base64:5]',
            importLoaders: 1
          }
        }, {
          loader: 'less-loader'
        }
      ]
    }]
  },
  externals: [nodeExternals()],
  plugins: [
    new MiniCssExtractPlugin({
      filename: '{{ projectName }}.css',
      chunkFilename: '[id].css'
    })
  ]
}