create-diagnose
Helped me debug/understand how npm create worked, and align behavior across
pnpm/yarn/npm etc. Probably not useful to you unless you're creating a create-*
module.
Usage
npm create diagnose
# do some guesses as to what package manager and create command you likely wanted to use
npm create -- --guess
Findings
npm
npm create diagnose@latest --some-npm-flag -- --non-npm-flag
- Only flags after
-- gets passed to create-diagnose command (expected)
process.env.npm_command: init (alias of create)
process.env.npm_lifecycle_event: npx
process.env.npm_lifecycle_script: create-diagnose
pnpm
pnpm create diagnose@latest --some-npm-flag -- --non-npm-flag
- All flags are passed, even the ones before
--
process.env.npm_config_user_agent: (eg) pnpm/10.7.1 npm/? node/v22.14.0 darwin arm64
yarn v1
yarn create diagnose@latest --some-npm-flag -- --non-npm-flag
- Fails:
[…].yarn/bin/create-diagnose@latest: No such file or directory
yarn create diagnose --non-npm-flag
process.env.npm_config_user_agent: (eg) yarn/1.22.22 npm/? node/v22.14.0 darwin arm64
bun
bun create diagnose@latest --some-npm-flag -- --non-npm-flag
- All flags are passed, even the ones before
--
process.env.npm_config_user_agent (eg) bun/1.2.12 npm/? node/v22.6.0 darwin arm64
process.env.npm_command: exec
process.env.npm_lifecycle_event: bunx
process.env.npm_lifecycle_script: create-diagnose@latest
License
MIT-licensed. See LICENSE.