From f8bad0476039dfc10bb9d2554c0b96fd2f994549 Mon Sep 17 00:00:00 2001 From: Shu Ding Date: Wed, 7 Dec 2022 20:40:19 +0100 Subject: [PATCH 1/2] skip css dev loader for prod --- packages/next/build/webpack/config/blocks/css/index.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/next/build/webpack/config/blocks/css/index.ts b/packages/next/build/webpack/config/blocks/css/index.ts index 546bcc265913708..b5509f3f8ceac9d 100644 --- a/packages/next/build/webpack/config/blocks/css/index.ts +++ b/packages/next/build/webpack/config/blocks/css/index.ts @@ -251,7 +251,7 @@ export const css = curry(async function css( ], }) : null, - ctx.hasAppDir && !ctx.isServer + ctx.hasAppDir && !ctx.isServer && !ctx.isProduction ? markRemovable({ sideEffects: false, test: regexCssModules, @@ -293,7 +293,7 @@ export const css = curry(async function css( ], }) : null, - ctx.hasAppDir && !ctx.isServer + ctx.hasAppDir && !ctx.isServer && !ctx.isProduction ? markRemovable({ sideEffects: false, test: regexSassModules, @@ -382,7 +382,7 @@ export const css = curry(async function css( fns.push( loader({ oneOf: [ - ctx.hasAppDir + ctx.hasAppDir && !ctx.isProduction ? markRemovable({ sideEffects: true, test: regexCssGlobal, @@ -394,7 +394,7 @@ export const css = curry(async function css( ], }) : null, - ctx.hasAppDir + ctx.hasAppDir && !ctx.isProduction ? markRemovable({ sideEffects: true, test: regexSassGlobal, From 1d0fa9eb4ad638974f0599cdf7bf347c1fa84258 Mon Sep 17 00:00:00 2001 From: Shu Ding Date: Wed, 7 Dec 2022 20:58:30 +0100 Subject: [PATCH 2/2] fix --- .../build/webpack/config/blocks/css/index.ts | 8 ++--- .../loaders/next-flight-css-dev-loader.ts | 31 ++++++++++++------- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/packages/next/build/webpack/config/blocks/css/index.ts b/packages/next/build/webpack/config/blocks/css/index.ts index b5509f3f8ceac9d..546bcc265913708 100644 --- a/packages/next/build/webpack/config/blocks/css/index.ts +++ b/packages/next/build/webpack/config/blocks/css/index.ts @@ -251,7 +251,7 @@ export const css = curry(async function css( ], }) : null, - ctx.hasAppDir && !ctx.isServer && !ctx.isProduction + ctx.hasAppDir && !ctx.isServer ? markRemovable({ sideEffects: false, test: regexCssModules, @@ -293,7 +293,7 @@ export const css = curry(async function css( ], }) : null, - ctx.hasAppDir && !ctx.isServer && !ctx.isProduction + ctx.hasAppDir && !ctx.isServer ? markRemovable({ sideEffects: false, test: regexSassModules, @@ -382,7 +382,7 @@ export const css = curry(async function css( fns.push( loader({ oneOf: [ - ctx.hasAppDir && !ctx.isProduction + ctx.hasAppDir ? markRemovable({ sideEffects: true, test: regexCssGlobal, @@ -394,7 +394,7 @@ export const css = curry(async function css( ], }) : null, - ctx.hasAppDir && !ctx.isProduction + ctx.hasAppDir ? markRemovable({ sideEffects: true, test: regexSassGlobal, diff --git a/packages/next/build/webpack/loaders/next-flight-css-dev-loader.ts b/packages/next/build/webpack/loaders/next-flight-css-dev-loader.ts index 8bfd62b9f38f189..43f994e35b423b7 100644 --- a/packages/next/build/webpack/loaders/next-flight-css-dev-loader.ts +++ b/packages/next/build/webpack/loaders/next-flight-css-dev-loader.ts @@ -5,25 +5,32 @@ */ export function pitch(this: any) { - const content = this.fs.readFileSync(this.resourcePath) - this.data.__checksum = ( - typeof content === 'string' ? Buffer.from(content) : content - ).toString('hex') + if (process.env.NODE_ENV !== 'production') { + const content = this.fs.readFileSync(this.resourcePath) + this.data.__checksum = ( + typeof content === 'string' ? Buffer.from(content) : content + ).toString('hex') + } } const NextServerCSSLoader = function (this: any, content: string) { this.cacheable && this.cacheable() - const isCSSModule = this.resourcePath.match(/\.module\.(css|sass|scss)$/) - if (isCSSModule) { - return ( - content + - '\nmodule.exports.__checksum = ' + - JSON.stringify(this.data.__checksum) - ) + // Only add the checksum during development. + if (process.env.NODE_ENV !== 'production') { + const isCSSModule = this.resourcePath.match(/\.module\.(css|sass|scss)$/) + if (isCSSModule) { + return ( + content + + '\nmodule.exports.__checksum = ' + + JSON.stringify(this.data.__checksum) + ) + } + + return `export default ${JSON.stringify(this.data.__checksum)}` } - return `export default ${JSON.stringify(this.data.__checksum)}` + return content } export default NextServerCSSLoader