Skip to content

Instantly share code, notes, and snippets.

@findawayer
Created December 22, 2020 04:54
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save findawayer/8c96fd008f02ed89a8271461f1e5d20f to your computer and use it in GitHub Desktop.
Save findawayer/8c96fd008f02ed89a8271461f1e5d20f to your computer and use it in GitHub Desktop.
Default next.js webpack config (serialized, captured with v10.0.3)
exports.config = {
externals: [ 'next' ],
optimization: {
noEmitOnErrors: false,
checkWasmTypes: false,
nodeEnv: false,
splitChunks: {
chunks: 'all',
cacheGroups: [Object],
maxInitialRequests: 25,
minSize: 20000
},
runtimeChunk: { name: 'webpack' },
minimize: true,
minimizer: [ [TerserPlugin], [CssMinimizerPlugin] ]
},
context: '(root)',
node: { setImmediate: false },
entry: [AsyncFunction: entry],
watchOptions: { ignored: [ '**/.git/**', '**/node_modules/**', '**/.next/**' ] },
output: {
path: '(root)\\.next',
filename: 'static/chunks/[name]-[chunkhash].js',
library: '_N_E',
libraryTarget: 'assign',
hotUpdateChunkFilename: 'static/webpack/[id].[hash].hot-update.js',
hotUpdateMainFilename: 'static/webpack/[hash].hot-update.json',
chunkFilename: 'static/chunks/[name].[contenthash].js',
strictModuleExceptionHandling: true,
crossOriginLoading: undefined,
futureEmitAssets: true,
webassemblyModuleFilename: 'static/wasm/[modulehash].wasm'
},
performance: false,
resolve: {
extensions: [
'.mjs', '.js',
'.tsx', '.ts',
'.jsx', '.json',
'.wasm'
],
modules: [ 'node_modules', '(root)\\src' ],
alias: {
'next/head': 'next/dist/next-server/lib/head.js',
'next/router': 'next/dist/client/router.js',
'next/config': 'next/dist/next-server/lib/runtime-config.js',
'next/dynamic': 'next/dist/next-server/lib/dynamic.js',
next: '(root)\\node_modules\\next',
'private-next-pages': '(root)\\src\\pages',
'private-dot-next': '(root)\\.next',
'unfetch$': '(root)\\node_modules\\next\\dist\\build\\polyfills\\fetch\\index.js',
'isomorphic-unfetch$': '(root)\\node_modules\\next\\dist\\build\\polyfills\\fetch\\index.js',
'whatwg-fetch$': '(root)\\node_modules\\next\\dist\\build\\polyfills\\fetch\\whatwg-fetch.js',
'object-assign$': '(root)\\node_modules\\next\\dist\\build\\polyfills\\object-assign.js',
'object.assign/auto': '(root)\\node_modules\\next\\dist\\build\\polyfills\\object.assign\\auto.js',
'object.assign/implementation': '(root)\\node_modules\\next\\dist\\build\\polyfills\\object.assign\\implementation.js',
'object.assign$': '(root)\\node_modules\\next\\dist\\build\\polyfills\\object.assign\\index.js',
'object.assign/polyfill': '(root)\\node_modules\\next\\dist\\build\\polyfills\\object.assign\\polyfill.js',
'object.assign/shim': '(root)\\node_modules\\next\\dist\\build\\polyfills\\object.assign\\shim.js',
url: '(root)\\node_modules\\native-url\\dist\\index.js',
'(root)\\node_modules\\next\\dist\\next-server\\lib\\router\\utils\\resolve-rewrites.js': '(root)\\node_modules\\next\\dist\\client\\dev\\noop.js'
},
mainFields: [ 'browser', 'module', 'main' ],
plugins: [ [JsConfigPathsPlugin], [Object] ]
},
resolveLoader: {
alias: {
'emit-file-loader': '(root)\\node_modules\\next\\dist\\build\\webpack\\loaders\\emit-file-loader',
'error-loader': '(root)\\node_modules\\next\\dist\\build\\webpack\\loaders\\error-loader',
'next-babel-loader': '(root)\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-babel-loader',
'next-client-pages-loader': '(root)\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader',
'next-data-loader': '(root)\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-data-loader',
'next-serverless-loader': '(root)\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-serverless-loader',
'noop-loader': '(root)\\node_modules\\next\\dist\\build\\webpack\\loaders\\noop-loader',
'next-plugin-loader': '(root)\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-plugin-loader'
},
modules: [ 'node_modules' ],
plugins: [ [Object] ]
},
module: { rules: [ [Object], [Object] ], strictExportPresence: true },
plugins: [
ChunkNamesPlugin {},
DefinePlugin { definitions: [Object] },
ReactLoadablePlugin { filename: 'react-loadable-manifest.json' },
DropClientPage { ampPages: Set {} },
HashedModuleIdsPlugin { options: [Object] },
IgnorePlugin {
options: [Object],
checkIgnore: [Function: bound checkIgnore]
},
BuildManifestPlugin {
buildId: '25lUykCvP7o_kS-GRlBT6',
rewrites: []
},
WellKnownErrorsPlugin {},
NextMiniCssExtractPlugin {
options: [Object],
__next_css_remove: true
}
],
mode: 'production',
name: 'client',
target: 'web',
bail: true,
devtool: false
};
exports.options = {
dir: '(root)',
dev: false,
isServer: false,
buildId: '25lUykCvP7o_kS-GRlBT6',
config: {
env: [],
webpack: [Function: webpack],
webpackDevMiddleware: null,
distDir: '.next',
assetPrefix: '',
configOrigin: 'next.config.js',
useFileSystemPublicRoutes: true,
generateBuildId: [Function: generateBuildId],
generateEtags: true,
pageExtensions: [ 'tsx' ],
target: 'server',
poweredByHeader: true,
compress: true,
analyticsId: '',
images: {
deviceSizes: [Array],
imageSizes: [Array],
path: '/_next/image',
loader: 'default',
domains: []
},
devIndicators: { buildActivity: true },
onDemandEntries: { maxInactiveAge: 60000, pagesBufferLength: 2 },
amp: { canonicalBase: '' },
basePath: '',
sassOptions: {},
trailingSlash: false,
i18n: false,
experimental: {
cpus: 11,
plugins: false,
profiling: false,
sprFlushToDisk: true,
reactMode: 'legacy',
workerThreads: false,
pageEnv: false,
productionBrowserSourceMaps: false,
optimizeFonts: false,
optimizeImages: false,
scrollRestoration: false
},
future: { excludeDefaultMomentLocales: false },
serverRuntimeConfig: {},
publicRuntimeConfig: {},
reactStrictMode: false,
configFile: '(root)\\next.config.js'
},
defaultLoaders: {
babel: { loader: 'next-babel-loader', options: [Object] },
hotSelfAccept: { loader: 'noop-loader' }
},
totalPages: 5,
webpack: [Function: webpack] {
version: '4.44.1',
WebpackOptionsDefaulter: [class WebpackOptionsDefaulter extends OptionsDefaulter],
WebpackOptionsApply: [class WebpackOptionsApply extends OptionsApply],
Compiler: [class Compiler extends Tapable],
MultiCompiler: [class MultiCompiler extends Tapable],
NodeEnvironmentPlugin: [class NodeEnvironmentPlugin],
validate: [Function: bound validateSchema],
validateSchema: [Function: validateSchema],
WebpackOptionsValidationError: [class WebpackOptionsValidationError extends WebpackError],
AutomaticPrefetchPlugin: [Getter],
BannerPlugin: [Getter],
CachePlugin: [Getter],
ContextExclusionPlugin: [Getter],
ContextReplacementPlugin: [Getter],
DefinePlugin: [Getter],
Dependency: [Getter],
DllPlugin: [Getter],
DllReferencePlugin: [Getter],
EnvironmentPlugin: [Getter],
EvalDevToolModulePlugin: [Getter],
EvalSourceMapDevToolPlugin: [Getter],
ExtendedAPIPlugin: [Getter],
ExternalsPlugin: [Getter],
HashedModuleIdsPlugin: [Getter],
HotModuleReplacementPlugin: [Getter],
IgnorePlugin: [Getter],
LibraryTemplatePlugin: [Getter],
LoaderOptionsPlugin: [Getter],
LoaderTargetPlugin: [Getter],
MemoryOutputFileSystem: [Getter],
Module: [Getter],
ModuleFilenameHelpers: [Getter],
NamedChunksPlugin: [Getter],
NamedModulesPlugin: [Getter],
NoEmitOnErrorsPlugin: [Getter],
NormalModuleReplacementPlugin: [Getter],
PrefetchPlugin: [Getter],
ProgressPlugin: [Getter],
ProvidePlugin: [Getter],
SetVarMainTemplatePlugin: [Getter],
SingleEntryPlugin: [Getter],
SourceMapDevToolPlugin: [Getter],
Stats: [Getter],
Template: [Getter],
UmdMainTemplatePlugin: [Getter],
WatchIgnorePlugin: [Getter],
dependencies: { DependencyReference: [Getter] },
optimize: {
AggressiveMergingPlugin: [Getter],
AggressiveSplittingPlugin: [Getter],
ChunkModuleIdRangePlugin: [Getter],
LimitChunkCountPlugin: [Getter],
MinChunkSizePlugin: [Getter],
ModuleConcatenationPlugin: [Getter],
OccurrenceOrderPlugin: [Getter],
OccurrenceModuleOrderPlugin: [Getter],
OccurrenceChunkOrderPlugin: [Getter],
RuntimeChunkPlugin: [Getter],
SideEffectsFlagPlugin: [Getter],
SplitChunksPlugin: [Getter],
UglifyJsPlugin: [Getter],
CommonsChunkPlugin: [Getter]
},
web: {
FetchCompileWasmTemplatePlugin: [Getter],
JsonpTemplatePlugin: [Getter]
},
webworker: { WebWorkerTemplatePlugin: [Getter] },
node: {
NodeTemplatePlugin: [Getter],
ReadFileCompileWasmTemplatePlugin: [Getter]
},
debug: { ProfilingPlugin: [Getter] },
util: { createHash: [Getter] }
}
}
{
externals: [ [Function] ],
optimization: {
noEmitOnErrors: false,
checkWasmTypes: false,
nodeEnv: false,
splitChunks: false,
runtimeChunk: undefined,
minimize: false,
minimizer: [ [TerserPlugin], [CssMinimizerPlugin] ]
},
context: '(root)',
node: { setImmediate: false },
entry: [AsyncFunction: entry],
watchOptions: { ignored: [ '**/.git/**', '**/node_modules/**', '**/.next/**' ] },
output: {
path: '(root)\\.next\\server',
filename: '[name].js',
library: undefined,
libraryTarget: 'commonjs2',
hotUpdateChunkFilename: 'static/webpack/[id].[hash].hot-update.js',
hotUpdateMainFilename: 'static/webpack/[hash].hot-update.json',
chunkFilename: '[name].[contenthash].js',
strictModuleExceptionHandling: true,
crossOriginLoading: undefined,
futureEmitAssets: true,
webassemblyModuleFilename: 'static/wasm/[modulehash].wasm'
},
performance: false,
resolve: {
extensions: [
'.js', '.mjs',
'.tsx', '.ts',
'.jsx', '.json',
'.wasm'
],
modules: [ 'node_modules', '(root)\\src' ],
alias: {
'next/head': 'next/dist/next-server/lib/head.js',
'next/router': 'next/dist/client/router.js',
'next/config': 'next/dist/next-server/lib/runtime-config.js',
'next/dynamic': 'next/dist/next-server/lib/dynamic.js',
next: '(root)\\node_modules\\next',
'private-next-pages': '(root)\\src\\pages',
'private-dot-next': '(root)\\.next',
'(root)\\node_modules\\next\\dist\\next-server\\lib\\router\\utils\\resolve-rewrites.js': '(root)\\node_modules\\next\\dist\\client\\dev\\noop.js'
},
mainFields: [ 'main', 'module' ],
plugins: [ [JsConfigPathsPlugin], [Object] ]
},
resolveLoader: {
alias: {
'emit-file-loader': '(root)\\node_modules\\next\\dist\\build\\webpack\\loaders\\emit-file-loader',
'error-loader': '(root)\\node_modules\\next\\dist\\build\\webpack\\loaders\\error-loader',
'next-babel-loader': '(root)\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-babel-loader',
'next-client-pages-loader': '(root)\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader',
'next-data-loader': '(root)\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-data-loader',
'next-serverless-loader': '(root)\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-serverless-loader',
'noop-loader': '(root)\\node_modules\\next\\dist\\build\\webpack\\loaders\\noop-loader',
'next-plugin-loader': '(root)\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-plugin-loader'
},
modules: [ 'node_modules' ],
plugins: [ [Object] ]
},
module: { rules: [ [Object], [Object] ], strictExportPresence: true },
plugins: [
ChunkNamesPlugin {},
DefinePlugin { definitions: [Object] },
HashedModuleIdsPlugin { options: [Object] },
IgnorePlugin {
options: [Object],
checkIgnore: [Function: bound checkIgnore]
},
PagesManifestPlugin { serverless: false },
NextJsSsrImportPlugin { options: [Object] },
NextJsSsrImportPlugin {},
WellKnownErrorsPlugin {}
],
mode: 'production',
name: 'server',
target: 'node',
bail: true,
devtool: false
} {
dir: '(root)',
dev: false,
isServer: true,
buildId: '25lUykCvP7o_kS-GRlBT6',
config: {
env: [],
webpack: [Function: webpack],
webpackDevMiddleware: null,
distDir: '.next',
assetPrefix: '',
configOrigin: 'next.config.js',
useFileSystemPublicRoutes: true,
generateBuildId: [Function: generateBuildId],
generateEtags: true,
pageExtensions: [ 'tsx' ],
target: 'server',
poweredByHeader: true,
compress: true,
analyticsId: '',
images: {
deviceSizes: [Array],
imageSizes: [Array],
path: '/_next/image',
loader: 'default',
domains: []
},
devIndicators: { buildActivity: true },
onDemandEntries: { maxInactiveAge: 60000, pagesBufferLength: 2 },
amp: { canonicalBase: '' },
basePath: '',
sassOptions: {},
trailingSlash: false,
i18n: false,
experimental: {
cpus: 11,
plugins: false,
profiling: false,
sprFlushToDisk: true,
reactMode: 'legacy',
workerThreads: false,
pageEnv: false,
productionBrowserSourceMaps: false,
optimizeFonts: false,
optimizeImages: false,
scrollRestoration: false
},
future: { excludeDefaultMomentLocales: false },
serverRuntimeConfig: {},
publicRuntimeConfig: {},
reactStrictMode: false,
configFile: '(root)\\next.config.js'
},
defaultLoaders: {
babel: { loader: 'next-babel-loader', options: [Object] },
hotSelfAccept: { loader: 'noop-loader' }
},
totalPages: 6,
webpack: [Function: webpack] {
version: '4.44.1',
WebpackOptionsDefaulter: [class WebpackOptionsDefaulter extends OptionsDefaulter],
WebpackOptionsApply: [class WebpackOptionsApply extends OptionsApply],
Compiler: [class Compiler extends Tapable],
MultiCompiler: [class MultiCompiler extends Tapable],
NodeEnvironmentPlugin: [class NodeEnvironmentPlugin],
validate: [Function: bound validateSchema],
validateSchema: [Function: validateSchema],
WebpackOptionsValidationError: [class WebpackOptionsValidationError extends WebpackError],
AutomaticPrefetchPlugin: [Getter],
BannerPlugin: [Getter],
CachePlugin: [Getter],
ContextExclusionPlugin: [Getter],
ContextReplacementPlugin: [Getter],
DefinePlugin: [Getter],
Dependency: [Getter],
DllPlugin: [Getter],
DllReferencePlugin: [Getter],
EnvironmentPlugin: [Getter],
EvalDevToolModulePlugin: [Getter],
EvalSourceMapDevToolPlugin: [Getter],
ExtendedAPIPlugin: [Getter],
ExternalsPlugin: [Getter],
HashedModuleIdsPlugin: [Getter],
HotModuleReplacementPlugin: [Getter],
IgnorePlugin: [Getter],
LibraryTemplatePlugin: [Getter],
LoaderOptionsPlugin: [Getter],
LoaderTargetPlugin: [Getter],
MemoryOutputFileSystem: [Getter],
Module: [Getter],
ModuleFilenameHelpers: [Getter],
NamedChunksPlugin: [Getter],
NamedModulesPlugin: [Getter],
NoEmitOnErrorsPlugin: [Getter],
NormalModuleReplacementPlugin: [Getter],
PrefetchPlugin: [Getter],
ProgressPlugin: [Getter],
ProvidePlugin: [Getter],
SetVarMainTemplatePlugin: [Getter],
SingleEntryPlugin: [Getter],
SourceMapDevToolPlugin: [Getter],
Stats: [Getter],
Template: [Getter],
UmdMainTemplatePlugin: [Getter],
WatchIgnorePlugin: [Getter],
dependencies: { DependencyReference: [Getter] },
optimize: {
AggressiveMergingPlugin: [Getter],
AggressiveSplittingPlugin: [Getter],
ChunkModuleIdRangePlugin: [Getter],
LimitChunkCountPlugin: [Getter],
MinChunkSizePlugin: [Getter],
ModuleConcatenationPlugin: [Getter],
OccurrenceOrderPlugin: [Getter],
OccurrenceModuleOrderPlugin: [Getter],
OccurrenceChunkOrderPlugin: [Getter],
RuntimeChunkPlugin: [Getter],
SideEffectsFlagPlugin: [Getter],
SplitChunksPlugin: [Getter],
UglifyJsPlugin: [Getter],
CommonsChunkPlugin: [Getter]
},
web: {
FetchCompileWasmTemplatePlugin: [Getter],
JsonpTemplatePlugin: [Getter]
},
webworker: { WebWorkerTemplatePlugin: [Getter] },
node: {
NodeTemplatePlugin: [Getter],
ReadFileCompileWasmTemplatePlugin: [Getter]
},
debug: { ProfilingPlugin: [Getter] },
util: { createHash: [Getter] }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment