UNPKG

generator-react-webpack-base

Version:

A base template for a fullstack react webpack application

65 lines (60 loc) 1.5 kB
var path = require('path'); var MiniCssExtractPlugin = require('mini-css-extract-plugin'); var CopyWebpackPlugin = require('copy-webpack-plugin'); var nodeExternals = require('webpack-node-externals'); var webpack = require('webpack'); var merge = require('lodash.merge'); var config = require('../src/config/general.js'); var BaseConfig = require('./webpack.base.config'); ServerTemplate = { entry: ['@babel/polyfill', './src/server.js'], output: { publicPath: config.basePath, path: path.join(__dirname, '../build/public'), filename: '../server.js' }, target: 'node', node: { __dirname: false, __filename: false }, plugins: [ new MiniCssExtractPlugin({filename: 'style.css'}), new CopyWebpackPlugin({patterns: [{from: 'src/public', to: '.'}]}), new webpack.DefinePlugin({ 'global.GENTLY': false }) ], externals: [nodeExternals()], module: { rules: [ { test: /\.scss$/, include: /src/, use: [ MiniCssExtractPlugin.loader, { loader: 'css-loader', options: { modules: { localIdentName: '[name]__[local]--[hash:base64:5]', exportLocalsConvention: 'camelCase' } } }, 'postcss-loader', { loader: 'sass-loader' } ] }, { test: /\.pug/, use: 'pug-loader' } ] } }; var serverConfig = merge({}, BaseConfig, ServerTemplate); serverConfig.module.rules = BaseConfig.module.rules.concat(ServerTemplate.module.rules); module.exports = serverConfig;