'use strict' const envFlag = require('node-env-flag') const webpack = require('webpack') const shouldAnalyze = envFlag(process.env.ANALYZE) const assetPrefix = process.env.NEXT_ASSET_PREFIX module.exports = { webpack: config => { config.plugins.push( new webpack.EnvironmentPlugin({ BASE_URL: null, LONG_CACHE: null }) ) if (shouldAnalyze) { // We don't include webpack-bundle-analyzer in devDependencies, so load // lazily. const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer') config.plugins.push( new BundleAnalyzerPlugin({ analyzerMode: 'server', analyzerPort: 8888, openAnalyzer: true, }) ) } config.module.rules.push({ test: /\.yml$/, use: { loader: 'js-yaml-loader', }, }) if (assetPrefix) { config.output.publicPath = `${assetPrefix}/${config.output.publicPath}` } return config }, exportPathMap: () => ({ '/': { page: '/' }, }), } // Avoid setting an `undefined` value. This causes // `TypeError: Cannot read property 'replace' of undefined` at build time. if (assetPrefix) { module.exports.assetPrefix = assetPrefix }