From 174eb83c5744839a531fb686eaa5744c9ee1d9cd Mon Sep 17 00:00:00 2001 From: Mark Erikson Date: Wed, 14 May 2025 11:07:07 -0700 Subject: [PATCH 1/2] Restructure build config to fix RTKQ externals (#4985) --- packages/toolkit/tsup.config.mts | 93 +++++++++++++++++++++++++++----- 1 file changed, 81 insertions(+), 12 deletions(-) diff --git a/packages/toolkit/tsup.config.mts b/packages/toolkit/tsup.config.mts index c842c5df1c..1222e0634d 100644 --- a/packages/toolkit/tsup.config.mts +++ b/packages/toolkit/tsup.config.mts @@ -81,9 +81,18 @@ export default defineConfig((overrideOptions): TsupOptions[] => { return [ { ...commonOptions, - name: 'Redux-Toolkit-ESM', + name: 'Redux-Toolkit-Core-ESM', entry: { 'redux-toolkit.modern': 'src/index.ts', + }, + outExtension: () => ({ js: '.mjs' }), + format: ['esm'], + }, + { + ...commonOptions, + name: 'Redux-Toolkit-Nested-ESM', + external: commonOptions.external.concat('@reduxjs/toolkit'), + entry: { 'react/redux-toolkit-react.modern': 'src/react/index.ts', 'query/rtk-query.modern': 'src/query/index.ts', 'query/react/rtk-query-react.modern': 'src/query/react/index.ts', @@ -91,12 +100,23 @@ export default defineConfig((overrideOptions): TsupOptions[] => { outExtension: () => ({ js: '.mjs' }), format: ['esm'], }, - { ...commonOptions, - name: 'Redux-Toolkit-CJS-Development', + name: 'Redux-Toolkit-Core-CJS-Development', entry: { 'cjs/redux-toolkit.development': 'src/index.ts', + }, + outExtension: () => ({ js: '.cjs' }), + env: { + NODE_ENV: 'development', + }, + format: ['cjs'], + }, + { + ...commonOptions, + name: 'Redux-Toolkit-Nested-CJS-Development', + external: commonOptions.external.concat('@reduxjs/toolkit'), + entry: { 'react/cjs/redux-toolkit-react.development': 'src/react/index.ts', 'query/cjs/rtk-query.development': 'src/query/index.ts', 'query/react/cjs/rtk-query-react.development': @@ -108,16 +128,11 @@ export default defineConfig((overrideOptions): TsupOptions[] => { }, format: ['cjs'], }, - { ...commonOptions, - name: 'Redux-Toolkit-CJS-Production', + name: 'Redux-Toolkit-Core-CJS-Production', entry: { 'cjs/redux-toolkit.production.min': 'src/index.ts', - 'react/cjs/redux-toolkit-react.production.min': 'src/react/index.ts', - 'query/cjs/rtk-query.production.min': 'src/query/index.ts', - 'query/react/cjs/rtk-query-react.production.min': - 'src/query/react/index.ts', }, outExtension: () => ({ js: '.cjs' }), env: { @@ -131,7 +146,27 @@ export default defineConfig((overrideOptions): TsupOptions[] => { path.join(import.meta.dirname, 'dist', 'cjs'), 'redux-toolkit', ) + }, + }, + { + ...commonOptions, + name: 'Redux-Toolkit-Nested-CJS-Production', + external: commonOptions.external.concat('@reduxjs/toolkit'), + entry: { + 'react/cjs/redux-toolkit-react.production.min': 'src/react/index.ts', + 'query/cjs/rtk-query.production.min': 'src/query/index.ts', + 'query/react/cjs/rtk-query-react.production.min': + 'src/query/react/index.ts', + }, + outExtension: () => ({ js: '.cjs' }), + env: { + NODE_ENV: 'production', + }, + minify: true, + replaceNodeEnv: true, + format: ['cjs'], + onSuccess: async () => { await writeCommonJSEntry( path.join(import.meta.dirname, 'dist', 'react', 'cjs'), 'redux-toolkit-react', @@ -151,9 +186,28 @@ export default defineConfig((overrideOptions): TsupOptions[] => { { ...commonOptions, - name: 'Redux-Toolkit-Browser', + name: 'Redux-Toolkit-Core-Browser', entry: { 'redux-toolkit.browser': 'src/index.ts', + }, + outExtension: () => ({ js: '.mjs' }), + platform: 'browser', + env: { + NODE_ENV: 'production', + }, + minify: true, + define: { + process: 'undefined', + }, + replaceNodeEnv: true, + format: ['esm'], + }, + + { + ...commonOptions, + name: 'Redux-Toolkit-Nested-Browser', + external: commonOptions.external.concat('@reduxjs/toolkit'), + entry: { 'react/redux-toolkit-react.browser': 'src/react/index.ts', 'query/rtk-query.browser': 'src/query/index.ts', 'query/react/rtk-query-react.browser': 'src/query/react/index.ts', @@ -170,12 +224,27 @@ export default defineConfig((overrideOptions): TsupOptions[] => { replaceNodeEnv: true, format: ['esm'], }, - { ...commonOptions, - name: 'Redux-Toolkit-Legacy-ESM', + name: 'Redux-Toolkit-Core-Legacy-ESM', entry: { 'redux-toolkit.legacy-esm': 'src/index.ts', + }, + outExtension: () => ({ js: '.js' }), + format: ['esm'], + target: ['es2017'], + onSuccess: async () => { + await fs.copyFile( + path.join(import.meta.dirname, 'src', 'uncheckedindexed.ts'), + path.join(outputDir, 'uncheckedindexed.ts'), + ) + }, + }, + { + ...commonOptions, + name: 'Redux-Toolkit-Nexted-Legacy-ESM', + external: commonOptions.external.concat('@reduxjs/toolkit'), + entry: { 'react/redux-toolkit-react.legacy-esm': 'src/react/index.ts', 'query/rtk-query.legacy-esm': 'src/query/index.ts', 'query/react/rtk-query-react.legacy-esm': 'src/query/react/index.ts', From af3e75bb9e6a51e13603d2a5684ef3ba1da07e3b Mon Sep 17 00:00:00 2001 From: Mark Erikson Date: Wed, 14 May 2025 14:10:01 -0400 Subject: [PATCH 2/2] Release 2.8.2 --- packages/toolkit/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/toolkit/package.json b/packages/toolkit/package.json index ec2d58ff15..a17129a82b 100644 --- a/packages/toolkit/package.json +++ b/packages/toolkit/package.json @@ -1,6 +1,6 @@ { "name": "@reduxjs/toolkit", - "version": "2.8.1", + "version": "2.8.2", "description": "The official, opinionated, batteries-included toolset for efficient Redux development", "author": "Mark Erikson ", "license": "MIT",