From e5be9cd4123453a1e3cd26986acd69a69caaa74b Mon Sep 17 00:00:00 2001 From: Jakub Romanczyk Date: Sat, 2 Nov 2024 13:31:35 +0100 Subject: [PATCH 1/5] feat: add --config cli option to both commands --- packages/repack/src/commands/options.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/repack/src/commands/options.ts b/packages/repack/src/commands/options.ts index c07d5f9cb..1bb433666 100644 --- a/packages/repack/src/commands/options.ts +++ b/packages/repack/src/commands/options.ts @@ -67,9 +67,14 @@ export const startCommandOptions = [ name: '--verbose', description: 'Enables verbose logging', }, + { + name: '--config ', + description: 'Path to a bundler config file, e.g webpack.config.js', + parse: (val: string) => path.resolve(val), + }, { name: '--webpackConfig ', - description: 'Path to a Webpack config', + description: 'Path to a bundler config file, e.g webpack.config.js', parse: (val: string) => path.resolve(val), }, ]; @@ -146,9 +151,14 @@ export const bundleCommandOptions = [ name: '--watch', description: 'Watch for file changes', }, + { + name: '--config ', + description: 'Path to a bundler config file, e.g webpack.config.js', + parse: (val: string) => path.resolve(val), + }, { name: '--webpackConfig ', - description: 'Path to a Webpack config', + description: 'Path to a bundler config file, e.g webpack.config.js', parse: (val: string) => path.resolve(val), }, ]; From e3d81be7349cd87a693d978d77a153fb8130b0a9 Mon Sep 17 00:00:00 2001 From: Jakub Romanczyk Date: Sat, 2 Nov 2024 13:32:38 +0100 Subject: [PATCH 2/5] chore: use --config in testers --- apps/tester-federation-v2/package.json | 4 ++-- apps/tester-federation/package.json | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/tester-federation-v2/package.json b/apps/tester-federation-v2/package.json index 2ac631350..450e3c421 100644 --- a/apps/tester-federation-v2/package.json +++ b/apps/tester-federation-v2/package.json @@ -5,8 +5,8 @@ "scripts": { "android": "react-native run-android", "ios": "react-native run-ios", - "start:hostapp": "react-native webpack-start --webpackConfig rspack.config.host-app.mjs", - "start:miniapp": "react-native webpack-start --webpackConfig rspack.config.mini-app.mjs --port 8082" + "start:hostapp": "react-native webpack-start --config rspack.config.host-app.mjs", + "start:miniapp": "react-native webpack-start --config rspack.config.mini-app.mjs --port 8082" }, "dependencies": { "@callstack/repack": "workspace:*", diff --git a/apps/tester-federation/package.json b/apps/tester-federation/package.json index afcef0f43..12df5a584 100644 --- a/apps/tester-federation/package.json +++ b/apps/tester-federation/package.json @@ -5,15 +5,15 @@ "scripts": { "android": "react-native run-android", "ios": "react-native run-ios", - "start:hostapp": "react-native webpack-start --webpackConfig rspack.config.host-app.mjs", - "start:miniapp": "react-native webpack-start --webpackConfig rspack.config.mini-app.mjs --port 8082", + "start:hostapp": "react-native webpack-start --config rspack.config.host-app.mjs", + "start:miniapp": "react-native webpack-start --config rspack.config.mini-app.mjs --port 8082", "bundle": "pnpm run \"/^bundle:(hostapp|miniapp)$/\"", "bundle:hostapp": "pnpm run \"/^bundle:hostapp:(ios|android)$/\"", "bundle:miniapp": "pnpm run \"/^bundle:miniapp:(ios|android)$/\"", - "bundle:hostapp:android": "react-native webpack-bundle --webpackConfig rspack.config.host-app.mjs --platform android --entry-file index.js --dev=false --bundle-output build/host-app/android/output-local/index.android.bundle --assets-dest build/host-app/android/output-local/res", - "bundle:hostapp:ios": "react-native webpack-bundle --webpackConfig rspack.config.host-app.mjs --platform ios --entry-file index.js --dev=false --bundle-output build/host-app/ios/output-local/main.jsbundle --assets-dest build/host-app/ios/output-local", - "bundle:miniapp:android": "react-native webpack-bundle --webpackConfig rspack.config.mini-app.mjs --platform android --entry-file index.js --dev=false --bundle-output build/mini-app/android/output-local/index.android.bundle --assets-dest build/mini-app/android/output-local/res", - "bundle:miniapp:ios": "react-native webpack-bundle --webpackConfig rspack.config.mini-app.mjs --platform ios --entry-file index.js --dev=false --bundle-output build/mini-app/ios/output-local/main.jsbundle --assets-dest build/mini-app/ios/output-local" + "bundle:hostapp:android": "react-native webpack-bundle --config rspack.config.host-app.mjs --platform android --entry-file index.js --dev=false --bundle-output build/host-app/android/output-local/index.android.bundle --assets-dest build/host-app/android/output-local/res", + "bundle:hostapp:ios": "react-native webpack-bundle --config rspack.config.host-app.mjs --platform ios --entry-file index.js --dev=false --bundle-output build/host-app/ios/output-local/main.jsbundle --assets-dest build/host-app/ios/output-local", + "bundle:miniapp:android": "react-native webpack-bundle --config rspack.config.mini-app.mjs --platform android --entry-file index.js --dev=false --bundle-output build/mini-app/android/output-local/index.android.bundle --assets-dest build/mini-app/android/output-local/res", + "bundle:miniapp:ios": "react-native webpack-bundle --config rspack.config.mini-app.mjs --platform ios --entry-file index.js --dev=false --bundle-output build/mini-app/ios/output-local/main.jsbundle --assets-dest build/mini-app/ios/output-local" }, "dependencies": { "@callstack/repack": "workspace:*", From 2699b99a24c262aa908f6a63c00b6fe66d6e7467 Mon Sep 17 00:00:00 2001 From: Jakub Romanczyk Date: Sun, 3 Nov 2024 02:17:58 +0100 Subject: [PATCH 3/5] refactor: add deprecation notice to webpackConfig option --- packages/repack/src/commands/options.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/repack/src/commands/options.ts b/packages/repack/src/commands/options.ts index 1bb433666..4fd01bbd8 100644 --- a/packages/repack/src/commands/options.ts +++ b/packages/repack/src/commands/options.ts @@ -158,7 +158,8 @@ export const bundleCommandOptions = [ }, { name: '--webpackConfig ', - description: 'Path to a bundler config file, e.g webpack.config.js', + description: + '[DEPRECATED] Path to a bundler config file, e.g webpack.config.js. Please use --config instead.', parse: (val: string) => path.resolve(val), }, ]; From 41382a6e92234304dae372d20c1965bf0069f876 Mon Sep 17 00:00:00 2001 From: Jakub Romanczyk Date: Sun, 3 Nov 2024 02:18:55 +0100 Subject: [PATCH 4/5] feat: use config and fallback to webpackConfig in commands --- packages/repack/src/commands/rspack/bundle.ts | 2 +- packages/repack/src/commands/rspack/start.ts | 2 +- packages/repack/src/commands/types.ts | 2 ++ packages/repack/src/commands/webpack/bundle.ts | 2 +- packages/repack/src/commands/webpack/start.ts | 2 +- 5 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/repack/src/commands/rspack/bundle.ts b/packages/repack/src/commands/rspack/bundle.ts index 0cfff5b98..6e077ac25 100644 --- a/packages/repack/src/commands/rspack/bundle.ts +++ b/packages/repack/src/commands/rspack/bundle.ts @@ -30,7 +30,7 @@ export async function bundle( ) { const rspackConfigPath = getRspackConfigFilePath( cliConfig.root, - args.webpackConfig + args.config ?? args.webpackConfig ); const cliOptions: BundleCliOptions = { diff --git a/packages/repack/src/commands/rspack/start.ts b/packages/repack/src/commands/rspack/start.ts index e969ff9bd..9a6cef861 100644 --- a/packages/repack/src/commands/rspack/start.ts +++ b/packages/repack/src/commands/rspack/start.ts @@ -38,7 +38,7 @@ export async function start( ) { const rspackConfigPath = getRspackConfigFilePath( cliConfig.root, - args.webpackConfig + args.config ?? args.webpackConfig ); const { reversePort: reversePortArg, ...restArgs } = args; const cliOptions: StartCliOptions = { diff --git a/packages/repack/src/commands/types.ts b/packages/repack/src/commands/types.ts index b62ecc6fe..cc09c51d8 100644 --- a/packages/repack/src/commands/types.ts +++ b/packages/repack/src/commands/types.ts @@ -10,6 +10,7 @@ export interface BundleArguments { stats?: string; verbose?: boolean; watch?: boolean; + config?: string; webpackConfig?: string; } @@ -28,6 +29,7 @@ export interface StartArguments { reversePort?: boolean; silent?: boolean; verbose?: boolean; + config?: string; webpackConfig?: string; } diff --git a/packages/repack/src/commands/webpack/bundle.ts b/packages/repack/src/commands/webpack/bundle.ts index 3ae4c97a6..c16b73277 100644 --- a/packages/repack/src/commands/webpack/bundle.ts +++ b/packages/repack/src/commands/webpack/bundle.ts @@ -29,7 +29,7 @@ export async function bundle( ) { const webpackConfigPath = getWebpackConfigFilePath( cliConfig.root, - args.webpackConfig + args.config ?? args.webpackConfig ); const cliOptions: BundleCliOptions = { diff --git a/packages/repack/src/commands/webpack/start.ts b/packages/repack/src/commands/webpack/start.ts index 3c5871864..b8b191a45 100644 --- a/packages/repack/src/commands/webpack/start.ts +++ b/packages/repack/src/commands/webpack/start.ts @@ -37,7 +37,7 @@ import type { HMRMessageBody } from './types'; export async function start(_: string[], config: Config, args: StartArguments) { const webpackConfigPath = getWebpackConfigFilePath( config.root, - args.webpackConfig + args.config ?? args.webpackConfig ); const { reversePort: reversePortArg, ...restArgs } = args; const cliOptions: StartCliOptions = { From 8685beacc49bf4619982a4a9c4abb85284fa16ab Mon Sep 17 00:00:00 2001 From: Jakub Romanczyk Date: Sun, 3 Nov 2024 02:23:15 +0100 Subject: [PATCH 5/5] chore: add changeset --- .changeset/clever-timers-decide.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/clever-timers-decide.md diff --git a/.changeset/clever-timers-decide.md b/.changeset/clever-timers-decide.md new file mode 100644 index 000000000..bf470c428 --- /dev/null +++ b/.changeset/clever-timers-decide.md @@ -0,0 +1,5 @@ +--- +"@callstack/repack": minor +--- + +Add `--config` option to commands, deprecate `--webpackConfig` option