Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const path = require('path')
- const TerserPlugin = require('terser-webpack-plugin')
- const MiniCssExtractPlugin = require('mini-css-extract-plugin')
- const OptimizeCssAsssetsPlugin = require('optimize-css-assets-webpack-plugin')
- const { CleanWebpackPlugin: CleanPlugin } = require('clean-webpack-plugin')
- const NODE_ENV = process.env.NODE_ENV ? process.env.NODE_ENV : 'development'
- module.exports = {
- entry: {
- app: path.resolve(__dirname, 'src', 'index.tsx')
- },
- output: {
- filename: '[name].js',
- chunkFilename: '[chunkhash].js',
- path: path.resolve(__dirname, '../', 'dist', 'client'),
- publicPath: '/dist/'
- },
- resolve: {
- extensions: [
- '.styl',
- '.tsx',
- '.ts',
- '.jsx',
- '.js'
- ]
- },
- module: {
- rules: [
- {
- test: /\.tsx?$/,
- exclude: /node_modules/,
- use: [
- 'babel-loader',
- 'ts-loader'
- ]
- },
- {
- test: /\.jsx?$/,
- exclude: /node_modules/,
- use: [
- 'babel-loader'
- ]
- },
- {
- test: /\.css$/,
- use: [
- MiniCssExtractPlugin.loader,
- 'css-loader',
- 'postcss-loader'
- ]
- },
- {
- test: /\.styl$/,
- use: [
- MiniCssExtractPlugin.loader,
- 'css-loader',
- 'postcss-loader',
- 'stylus-loader'
- ]
- }
- ]
- },
- plugins: [
- new CleanPlugin(),
- new MiniCssExtractPlugin({
- filename: '[name].css',
- chunkFilename: '[chunkhash].css',
- ignoreOrder: false
- })
- ],
- optimization: {
- minimizer: [
- new TerserPlugin({
- terserOptions: {
- output: {
- comments: false
- }
- },
- extractComments: false
- }),
- new OptimizeCssAsssetsPlugin()
- ]
- },
- stats: {
- children: false
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement