Skip to content

修复 npm link 后 wanman 静默退出#8

Open
crazygit wants to merge 1 commit into
chekusu:mainfrom
crazygit:fix/npm-link-cli-entry
Open

修复 npm link 后 wanman 静默退出#8
crazygit wants to merge 1 commit into
chekusu:mainfrom
crazygit:fix/npm-link-cli-entry

Conversation

@crazygit
Copy link
Copy Markdown

问题

通过 npm link 本地安装 @wanman/cli 后,执行 wanmanwanman --help 会静默退出,退出码为 0 但没有任何输出。

根因是 CLI 入口的 isDirectCliExecution() 只比较 process.argv[1]import.meta.url 对应的普通解析路径。npm link 暴露的 bin 是 symlink,process.argv[1] 指向全局 bin 链接路径,而 import.meta.url 指向真实的 dist/index.js 路径,两者字符串不相等,导致入口没有调用 run()

变更

  • 在入口检测中先保留原有路径比较,再用 fs.realpathSync() 解析 symlink 后比较真实路径。
  • 增加 symlink 入口场景的回归测试,覆盖 npm link 这类全局 bin 链接执行方式。

验证

  • pnpm --filter @wanman/cli typecheck
  • pnpm --filter @wanman/cli test -- src/index.test.ts
  • pnpm --filter @wanman/cli test
  • 本地验证 wanman --help 可以正常输出帮助文本

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant