/* Copyright (C) 2019 Monomax Software Pty Ltd * * This file is part of Dnote. * * Dnote is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Dnote is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with Dnote. If not, see . */ const PATHS = require('./paths'); const rules = require('./rules'); const plugins = require('./plugins'); const resolve = require('./resolve'); module.exports = env => { const isStandalone = env.standalone === 'true'; const isTest = env.isTest === 'true'; if (!isStandalone) { console.log('building a non-standalone app'); } return { mode: 'production', devtool: 'cheap-module-source-map', entry: { app: ['./src/client'] }, output: { path: PATHS.output, filename: '[chunkhash].js', chunkFilename: '[name].[chunkhash:6].js', // for code splitting. will work without but useful to set publicPath: PATHS.public }, module: { rules: rules({ production: true }) }, resolve, plugins: plugins({ production: true, test: isTest, standalone: isStandalone }), optimization: { minimize: true } }; };