From 89629a7f08be57c867a37d9b256d50bebf6b738d Mon Sep 17 00:00:00 2001 From: shenowen Date: Mon, 4 Oct 2021 13:56:38 -0500 Subject: [PATCH 1/6] Add inspectBrk to try to use when debugging backend node Signed-off-by: shenowen --- packages/cli/src/commands/backend/dev.ts | 1 + packages/cli/src/commands/index.ts | 1 + packages/cli/src/lib/bundler/config.ts | 2 +- packages/cli/src/lib/bundler/types.ts | 2 ++ 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/commands/backend/dev.ts b/packages/cli/src/commands/backend/dev.ts index a09cea0e8a..b14a1f3e20 100644 --- a/packages/cli/src/commands/backend/dev.ts +++ b/packages/cli/src/commands/backend/dev.ts @@ -29,6 +29,7 @@ export default async (cmd: Command) => { entry: 'src/index', checksEnabled: cmd.check, inspectEnabled: cmd.inspect, + inspectBrkEnabled: cmd.inspectBrk, }); await waitForExit(); diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts index bcd1509f58..117778b35e 100644 --- a/packages/cli/src/commands/index.ts +++ b/packages/cli/src/commands/index.ts @@ -69,6 +69,7 @@ export function registerCommands(program: CommanderStatic) { .description('Start local development server with HMR for the backend') .option('--check', 'Enable type checking and linting') .option('--inspect', 'Enable debugger') + .option('--inspect-brk', 'Enable debugger with await to attach debugger') // We don't actually use the config in the CLI, just pass them on to the NodeJS process .option(...configOption) .action(lazy(() => import('./backend/dev').then(m => m.default))); diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index 6e3f445f4a..964f12535d 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -319,7 +319,7 @@ export async function createBackendConfig( plugins: [ new RunScriptWebpackPlugin({ name: 'main.js', - nodeArgs: options.inspectEnabled ? ['--inspect'] : undefined, + nodeArgs: options.inspectEnabled ? ['--inspect'] : options.inspectEnabled ? ['--inspect-brk'] : undefined, args: process.argv.slice(3), // drop `node backstage-cli backend:dev` }), new webpack.HotModuleReplacementPlugin(), diff --git a/packages/cli/src/lib/bundler/types.ts b/packages/cli/src/lib/bundler/types.ts index 283074a295..93865bcf7e 100644 --- a/packages/cli/src/lib/bundler/types.ts +++ b/packages/cli/src/lib/bundler/types.ts @@ -47,11 +47,13 @@ export type BackendBundlingOptions = { isDev: boolean; parallel?: ParallelOption; inspectEnabled: boolean; + inspectBrkEnabled: boolean; }; export type BackendServeOptions = BundlingPathsOptions & { checksEnabled: boolean; inspectEnabled: boolean; + inspectBrkEnabled: boolean; }; export type LernaPackage = { From df1242ffe4c6fe6dc9bfd49fe20c9534bbe5e359 Mon Sep 17 00:00:00 2001 From: Mohamed Mohamed Date: Mon, 4 Oct 2021 14:16:52 -0500 Subject: [PATCH 2/6] adding changeset Signed-off-by: Mohamed Mohamed --- .changeset/blue-buttons-sit.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/blue-buttons-sit.md diff --git a/.changeset/blue-buttons-sit.md b/.changeset/blue-buttons-sit.md new file mode 100644 index 0000000000..5dc4af8e43 --- /dev/null +++ b/.changeset/blue-buttons-sit.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Adding --inspect-brk as an option when debugging backend for development From 222022965ccb4a09092ea4f36253c6761f35961a Mon Sep 17 00:00:00 2001 From: Mohamed Mohamed Date: Mon, 4 Oct 2021 14:27:36 -0500 Subject: [PATCH 3/6] typo fix. now refering to --inspect-brk Signed-off-by: Mohamed Mohamed --- packages/cli/src/lib/bundler/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index 964f12535d..de3c014ee6 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -319,7 +319,7 @@ export async function createBackendConfig( plugins: [ new RunScriptWebpackPlugin({ name: 'main.js', - nodeArgs: options.inspectEnabled ? ['--inspect'] : options.inspectEnabled ? ['--inspect-brk'] : undefined, + nodeArgs: options.inspectEnabled ? ['--inspect'] : options.inspectBrkEnabled ? ['--inspect-brk'] : undefined, args: process.argv.slice(3), // drop `node backstage-cli backend:dev` }), new webpack.HotModuleReplacementPlugin(), From d56565ad1f3ef5c26b37b863987a8ce095b9d3f3 Mon Sep 17 00:00:00 2001 From: Mohamed Mohamed Date: Tue, 5 Oct 2021 10:14:21 -0500 Subject: [PATCH 4/6] update patch message Signed-off-by: Mohamed Mohamed --- .changeset/blue-buttons-sit.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/blue-buttons-sit.md b/.changeset/blue-buttons-sit.md index 5dc4af8e43..4839d0dd45 100644 --- a/.changeset/blue-buttons-sit.md +++ b/.changeset/blue-buttons-sit.md @@ -2,4 +2,4 @@ '@backstage/cli': patch --- -Adding --inspect-brk as an option when debugging backend for development +Adding `--inspect-brk` as an option when debugging backend for development From c4b3cca4d21bd68cf34b3b862c06556aed78b026 Mon Sep 17 00:00:00 2001 From: shenowen Date: Wed, 6 Oct 2021 13:54:38 -0500 Subject: [PATCH 5/6] Added suggested change to runScript args refactor for eslint per PR comment Signed-off-by: shenowen --- packages/cli/src/lib/bundler/config.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index de3c014ee6..ac4f77f3e3 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -247,6 +247,13 @@ export async function createBackendConfig( const { loaders } = transforms(options); + const runScriptNodeArgs = new Array(); + if (options.inspectEnabled) { + runScriptNodeArgs.push('--inspect'); + } else if (options.inspectBrkEnabled) { + runScriptNodeArgs.push('--inspect-brk'); + } + return { mode: isDev ? 'development' : 'production', profile: false, @@ -319,7 +326,7 @@ export async function createBackendConfig( plugins: [ new RunScriptWebpackPlugin({ name: 'main.js', - nodeArgs: options.inspectEnabled ? ['--inspect'] : options.inspectBrkEnabled ? ['--inspect-brk'] : undefined, + nodeArgs: runScriptNodeArgs.length > 0 ? runScriptNodeArgs[0] : undefined, args: process.argv.slice(3), // drop `node backstage-cli backend:dev` }), new webpack.HotModuleReplacementPlugin(), From f7b1ce9c749a3b2b3cefc63b489ce56de1e849f2 Mon Sep 17 00:00:00 2001 From: shenowen Date: Wed, 6 Oct 2021 14:06:55 -0500 Subject: [PATCH 6/6] Add tweak to remove unintended array indexing to keep nodeArgs as an array Signed-off-by: shenowen --- packages/cli/src/lib/bundler/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index ac4f77f3e3..58ff71b7f6 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -326,7 +326,7 @@ export async function createBackendConfig( plugins: [ new RunScriptWebpackPlugin({ name: 'main.js', - nodeArgs: runScriptNodeArgs.length > 0 ? runScriptNodeArgs[0] : undefined, + nodeArgs: runScriptNodeArgs.length > 0 ? runScriptNodeArgs : undefined, args: process.argv.slice(3), // drop `node backstage-cli backend:dev` }), new webpack.HotModuleReplacementPlugin(),