From a55a2509e22df09d50198f93478bd9bfbdcb67e6 Mon Sep 17 00:00:00 2001 From: Chuck Swanberg Date: Thu, 23 Oct 2025 16:29:37 -0400 Subject: [PATCH] fix: Add .js extension to dynamic imports in ES modules MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed ERR_MODULE_NOT_FOUND errors when creating worktrees by: - Adding .js extensions to dynamic imports in source files - Updating fix-imports.js script to handle dynamic imports Previously, the build script only fixed static import statements, leaving dynamic imports without the required .js extension for ES modules. This caused module resolution failures at runtime when creating worktrees. Changes: - src/tools/worktree-lifecycle.ts: Added .js to gitDiffStats imports - src/tools/worktree-changes.ts: Added .js to ensureWorktreeHasMetadata import - scripts/fix-imports.js: Added regex patterns to fix dynamic imports during build 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- scripts/fix-imports.js | 10 ++++++++++ src/tools/worktree-changes.ts | 2 +- src/tools/worktree-lifecycle.ts | 4 ++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/scripts/fix-imports.js b/scripts/fix-imports.js index 6f45a00..10b0e87 100644 --- a/scripts/fix-imports.js +++ b/scripts/fix-imports.js @@ -17,6 +17,16 @@ files.forEach((file) => { 'from "$1.js"' ); + // Add .js to dynamic imports without extensions + content = content.replace( + /import\(['"](\.\.[\/\\][^'"]+?)(? 0) { const { ensureWorktreeHasMetadata } = await import( - "./worktree-lifecycle" + "./worktree-lifecycle.js" ); await WorktreeMetadataManager.ensureMetadataForWorktrees( worktreesWithoutMetadata.map((wt) => wt.worktreePath), diff --git a/src/tools/worktree-lifecycle.ts b/src/tools/worktree-lifecycle.ts index 811d82d..a1185e2 100644 --- a/src/tools/worktree-lifecycle.ts +++ b/src/tools/worktree-lifecycle.ts @@ -599,7 +599,7 @@ export const cleanWorktrees = { try { // Try to get diff stats from base branch - const { gitDiffStats } = await import("@/src/utils/git"); + const { gitDiffStats } = await import("@/src/utils/git.js"); const diffStats = await gitDiffStats(baseBranch, "HEAD", { cwd: worktree.worktreePath, }); @@ -607,7 +607,7 @@ export const cleanWorktrees = { } catch (error) { // If diff fails, try origin/baseBranch try { - const { gitDiffStats } = await import("@/src/utils/git"); + const { gitDiffStats } = await import("@/src/utils/git.js"); const diffStats = await gitDiffStats( `origin/${baseBranch}`, "HEAD",