Commit c2385218780 for woocommerce

commit c2385218780d163a7f9b02d5b65c04aeaa8d2d1a
Author: Daniel Mallory <daniel.mallory@automattic.com>
Date:   Fri Apr 10 13:52:36 2026 +0100

    Persist webpack cache for JS package style bundle builds (#64082)

    * perf(packages): persist webpack cache for style bundles

    * build(packages): skip webpack filesystem cache in ci

    * fix(packages): address webpack cache review feedback

    * chore(packages): update webpack cache changelog metadata

diff --git a/packages/js/admin-layout/changelog/build-webpack-filesystem-cache b/packages/js/admin-layout/changelog/build-webpack-filesystem-cache
new file mode 100644
index 00000000000..3adddf39400
--- /dev/null
+++ b/packages/js/admin-layout/changelog/build-webpack-filesystem-cache
@@ -0,0 +1,4 @@
+Significance: minor
+Type: dev
+
+Improve build time for admin-layout by using webpack filesystem cache.
diff --git a/packages/js/admin-layout/webpack.config.js b/packages/js/admin-layout/webpack.config.js
index 4d7d1d02cad..093d33b5138 100644
--- a/packages/js/admin-layout/webpack.config.js
+++ b/packages/js/admin-layout/webpack.config.js
@@ -12,7 +12,7 @@ const NODE_ENV = process.env.NODE_ENV || 'development';

 module.exports = {
 	mode: NODE_ENV,
-	cache: ( NODE_ENV !== 'development' && { type: 'memory' } ) || {
+	cache: ( process.env.CI && { type: 'memory' } ) || {
 		type: 'filesystem',
 		cacheDirectory: path.resolve(
 			__dirname,
diff --git a/packages/js/block-templates/changelog/build-webpack-filesystem-cache b/packages/js/block-templates/changelog/build-webpack-filesystem-cache
new file mode 100644
index 00000000000..372ab63b961
--- /dev/null
+++ b/packages/js/block-templates/changelog/build-webpack-filesystem-cache
@@ -0,0 +1,4 @@
+Significance: minor
+Type: dev
+
+Improve build time for block-templates by using webpack filesystem cache.
diff --git a/packages/js/block-templates/webpack.config.js b/packages/js/block-templates/webpack.config.js
index 4d7d1d02cad..093d33b5138 100644
--- a/packages/js/block-templates/webpack.config.js
+++ b/packages/js/block-templates/webpack.config.js
@@ -12,7 +12,7 @@ const NODE_ENV = process.env.NODE_ENV || 'development';

 module.exports = {
 	mode: NODE_ENV,
-	cache: ( NODE_ENV !== 'development' && { type: 'memory' } ) || {
+	cache: ( process.env.CI && { type: 'memory' } ) || {
 		type: 'filesystem',
 		cacheDirectory: path.resolve(
 			__dirname,
diff --git a/packages/js/components/changelog/build-webpack-filesystem-cache b/packages/js/components/changelog/build-webpack-filesystem-cache
new file mode 100644
index 00000000000..bc6c713b0ba
--- /dev/null
+++ b/packages/js/components/changelog/build-webpack-filesystem-cache
@@ -0,0 +1,4 @@
+Significance: minor
+Type: dev
+
+Improve build time for components by using webpack filesystem cache.
diff --git a/packages/js/components/webpack.config.js b/packages/js/components/webpack.config.js
index 4d7d1d02cad..093d33b5138 100644
--- a/packages/js/components/webpack.config.js
+++ b/packages/js/components/webpack.config.js
@@ -12,7 +12,7 @@ const NODE_ENV = process.env.NODE_ENV || 'development';

 module.exports = {
 	mode: NODE_ENV,
-	cache: ( NODE_ENV !== 'development' && { type: 'memory' } ) || {
+	cache: ( process.env.CI && { type: 'memory' } ) || {
 		type: 'filesystem',
 		cacheDirectory: path.resolve(
 			__dirname,
diff --git a/packages/js/customer-effort-score/changelog/build-webpack-filesystem-cache b/packages/js/customer-effort-score/changelog/build-webpack-filesystem-cache
new file mode 100644
index 00000000000..48320acf379
--- /dev/null
+++ b/packages/js/customer-effort-score/changelog/build-webpack-filesystem-cache
@@ -0,0 +1,4 @@
+Significance: minor
+Type: dev
+
+Improve build time for customer-effort-score by using webpack filesystem cache.
diff --git a/packages/js/customer-effort-score/webpack.config.js b/packages/js/customer-effort-score/webpack.config.js
index 4d7d1d02cad..093d33b5138 100644
--- a/packages/js/customer-effort-score/webpack.config.js
+++ b/packages/js/customer-effort-score/webpack.config.js
@@ -12,7 +12,7 @@ const NODE_ENV = process.env.NODE_ENV || 'development';

 module.exports = {
 	mode: NODE_ENV,
-	cache: ( NODE_ENV !== 'development' && { type: 'memory' } ) || {
+	cache: ( process.env.CI && { type: 'memory' } ) || {
 		type: 'filesystem',
 		cacheDirectory: path.resolve(
 			__dirname,
diff --git a/packages/js/email-editor/changelog/build-webpack-filesystem-cache b/packages/js/email-editor/changelog/build-webpack-filesystem-cache
new file mode 100644
index 00000000000..48ab74b99fa
--- /dev/null
+++ b/packages/js/email-editor/changelog/build-webpack-filesystem-cache
@@ -0,0 +1,4 @@
+Significance: minor
+Type: dev
+
+Improve build time for email-editor by using webpack filesystem cache.
diff --git a/packages/js/email-editor/webpack.config.js b/packages/js/email-editor/webpack.config.js
index 91aafed5a41..9296a84995a 100644
--- a/packages/js/email-editor/webpack.config.js
+++ b/packages/js/email-editor/webpack.config.js
@@ -12,7 +12,7 @@ const NODE_ENV = process.env.NODE_ENV || 'development';

 module.exports = {
 	mode: NODE_ENV,
-	cache: ( NODE_ENV !== 'development' && { type: 'memory' } ) || {
+	cache: ( process.env.CI && { type: 'memory' } ) || {
 		type: 'filesystem',
 		cacheDirectory: path.resolve(
 			__dirname,
diff --git a/packages/js/experimental/changelog/build-webpack-filesystem-cache b/packages/js/experimental/changelog/build-webpack-filesystem-cache
new file mode 100644
index 00000000000..016ed9beb8e
--- /dev/null
+++ b/packages/js/experimental/changelog/build-webpack-filesystem-cache
@@ -0,0 +1,4 @@
+Significance: minor
+Type: dev
+
+Improve build time for experimental by using webpack filesystem cache.
diff --git a/packages/js/experimental/webpack.config.js b/packages/js/experimental/webpack.config.js
index 4d7d1d02cad..093d33b5138 100644
--- a/packages/js/experimental/webpack.config.js
+++ b/packages/js/experimental/webpack.config.js
@@ -12,7 +12,7 @@ const NODE_ENV = process.env.NODE_ENV || 'development';

 module.exports = {
 	mode: NODE_ENV,
-	cache: ( NODE_ENV !== 'development' && { type: 'memory' } ) || {
+	cache: ( process.env.CI && { type: 'memory' } ) || {
 		type: 'filesystem',
 		cacheDirectory: path.resolve(
 			__dirname,
diff --git a/packages/js/onboarding/changelog/build-webpack-filesystem-cache b/packages/js/onboarding/changelog/build-webpack-filesystem-cache
new file mode 100644
index 00000000000..f5f5b65d30b
--- /dev/null
+++ b/packages/js/onboarding/changelog/build-webpack-filesystem-cache
@@ -0,0 +1,4 @@
+Significance: minor
+Type: dev
+
+Improve build time for onboarding by using webpack filesystem cache.
diff --git a/packages/js/onboarding/webpack.config.js b/packages/js/onboarding/webpack.config.js
index 4d7d1d02cad..093d33b5138 100644
--- a/packages/js/onboarding/webpack.config.js
+++ b/packages/js/onboarding/webpack.config.js
@@ -12,7 +12,7 @@ const NODE_ENV = process.env.NODE_ENV || 'development';

 module.exports = {
 	mode: NODE_ENV,
-	cache: ( NODE_ENV !== 'development' && { type: 'memory' } ) || {
+	cache: ( process.env.CI && { type: 'memory' } ) || {
 		type: 'filesystem',
 		cacheDirectory: path.resolve(
 			__dirname,
diff --git a/packages/js/product-editor/changelog/build-webpack-filesystem-cache b/packages/js/product-editor/changelog/build-webpack-filesystem-cache
new file mode 100644
index 00000000000..eee3e465e54
--- /dev/null
+++ b/packages/js/product-editor/changelog/build-webpack-filesystem-cache
@@ -0,0 +1,4 @@
+Significance: minor
+Type: dev
+
+Improve build time for product-editor by using webpack filesystem cache.
diff --git a/packages/js/product-editor/webpack.config.js b/packages/js/product-editor/webpack.config.js
index 15b1343cd76..ef8232cf3df 100644
--- a/packages/js/product-editor/webpack.config.js
+++ b/packages/js/product-editor/webpack.config.js
@@ -64,8 +64,8 @@ const {
 const NODE_ENV = process.env.NODE_ENV || 'development';

 module.exports = {
-	mode: process.env.NODE_ENV || 'development',
-	cache: ( NODE_ENV !== 'development' && { type: 'memory' } ) || {
+	mode: NODE_ENV,
+	cache: ( process.env.CI && { type: 'memory' } ) || {
 		type: 'filesystem',
 		cacheDirectory: path.resolve(
 			__dirname,
diff --git a/packages/js/settings-editor/changelog/build-webpack-filesystem-cache b/packages/js/settings-editor/changelog/build-webpack-filesystem-cache
new file mode 100644
index 00000000000..f1d8163e888
--- /dev/null
+++ b/packages/js/settings-editor/changelog/build-webpack-filesystem-cache
@@ -0,0 +1,4 @@
+Significance: minor
+Type: dev
+
+Improve build time for settings-editor by using webpack filesystem cache.
diff --git a/packages/js/settings-editor/webpack.config.js b/packages/js/settings-editor/webpack.config.js
index 7c9991e36f9..b4cc4743e84 100644
--- a/packages/js/settings-editor/webpack.config.js
+++ b/packages/js/settings-editor/webpack.config.js
@@ -58,8 +58,8 @@ const {
 const NODE_ENV = process.env.NODE_ENV || 'development';

 module.exports = {
-	mode: process.env.NODE_ENV || 'development',
-	cache: ( NODE_ENV !== 'development' && { type: 'memory' } ) || {
+	mode: NODE_ENV,
+	cache: ( process.env.CI && { type: 'memory' } ) || {
 		type: 'filesystem',
 		cacheDirectory: path.resolve(
 			__dirname,