UNPKG

@zero-scripts/webpack-config

Version:
83 lines 3.1 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createWebpackConfiguration = void 0; const interpolate_html_plugin_1 = __importDefault(require("@k88/interpolate-html-plugin")); const path_1 = __importDefault(require("path")); const terser_webpack_plugin_1 = __importDefault(require("terser-webpack-plugin")); const webpack_1 = require("webpack"); const webpack_assets_manifest_1 = __importDefault(require("webpack-assets-manifest")); function createWebpackConfiguration({ isDev, paths, additionalEntry, useSourceMap, moduleFileExtensions }) { return { mode: isDev ? 'development' : 'production', entry: [paths.indexJs, ...additionalEntry], devtool: isDev ? 'eval-source-map' : useSourceMap && 'source-map', output: { path: paths.build, filename: isDev ? 'js/[name].js' : 'js/[name].[contenthash:8].js', publicPath: paths.publicPath, chunkFilename: isDev ? 'js/[name].chunk.js' : 'js/[name].[contenthash:8].chunk.js', devtoolModuleFilenameTemplate: !isDev ? info => path_1.default .relative(paths.src, info.absoluteResourcePath) .replace(/\\/g, '/') : info => path_1.default.resolve(info.absoluteResourcePath).replace(/\\/g, '/') }, bail: !isDev, optimization: { minimize: !isDev, minimizer: [ new terser_webpack_plugin_1.default({ parallel: true, cache: true, sourceMap: useSourceMap }) ], splitChunks: { chunks: 'all' }, runtimeChunk: true }, resolve: { modules: ['node_modules'], extensions: moduleFileExtensions }, module: { strictExportPresence: true, rules: [] }, plugins: [ new webpack_1.DefinePlugin({ 'process.env': { NODE_ENV: JSON.stringify(process.env.NODE_ENV) } }), new webpack_assets_manifest_1.default({ output: 'asset-manifest.json' }), new interpolate_html_plugin_1.default({ PUBLIC_PATH: paths.publicPath.endsWith('/') ? paths.publicPath.slice(0, -1) : paths.publicPath }) ], node: { module: 'empty', dgram: 'empty', fs: 'empty', net: 'empty', tls: 'empty', child_process: 'empty' }, stats: 'errors-only', infrastructureLogging: { level: 'error' } }; } exports.createWebpackConfiguration = createWebpackConfiguration; //# sourceMappingURL=createWebpackConfiguration.js.map