Skip to content

fix: add typescript as dependency to resolve knip peer dep in npx/dlx environments#17

Merged
aidenybai merged 1 commit intomillionco:mainfrom
olivermontes:fix/typescript-peer-dep
Feb 17, 2026
Merged

fix: add typescript as dependency to resolve knip peer dep in npx/dlx environments#17
aidenybai merged 1 commit intomillionco:mainfrom
olivermontes:fix/typescript-peer-dep

Conversation

@olivermontes
Copy link
Copy Markdown
Contributor

Problem

When running npx -y react-doctor@latest . or pnpm dlx react-doctor@latest ., the following error occurs:

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'typescript' imported from
.../knip/dist/plugins/astro/resolveFromAST.js

Root Cause

knip declares typescript >=5.0.4 as a required peer dependency for its Astro plugin. When react-doctor is executed via npx or pnpm dlx, it runs in an isolated cache directory that does not have access to the host project's node_modules. As a result, typescript cannot be resolved at module load time.

Fix

Add typescript as an explicit dependency in packages/react-doctor/package.json, matching the range required by knip (>=5.0.4 <7). This ensures typescript is always installed alongside react-doctor in any environment.

Testing

Before fix:

npx -y react-doctor@latest .  # ERR_MODULE_NOT_FOUND for typescript

After fix: react-doctor runs correctly since typescript is bundled as a direct dependency.

knip requires typescript >=5.0.4 as a peer dependency for its Astro
plugin. When react-doctor is executed via npx or pnpm dlx, the isolated
environment does not have access to the host project's node_modules,
causing ERR_MODULE_NOT_FOUND for typescript.

Adding typescript explicitly as a dependency ensures it is always
available when react-doctor is installed.

Fixes: ERR_MODULE_NOT_FOUND: Cannot find package 'typescript' imported
from knip/dist/plugins/astro/resolveFromAST.js
@vercel
Copy link
Copy Markdown

vercel bot commented Feb 17, 2026

@olivermontes is attempting to deploy a commit to the Million Team on Vercel.

A member of the Team first needs to authorize it.

@aidenybai
Copy link
Copy Markdown
Member

lgtm

@aidenybai aidenybai merged commit 64d837b into millionco:main Feb 17, 2026
1 of 2 checks passed
@ameetmadan
Copy link
Copy Markdown

not working on version 0.0.17

➜ web git:(main) ✗ npx -y react-doctor@latest .
node:internal/modules/package_json_reader:268
throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null);
^

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'typescript' imported from .npm/_npx/81e833f6d16d6127/node_modules/knip/dist/PrincipalFactory.js
at Object.getPackageJSONURL (node:internal/modules/package_json_reader:268:9)
at packageResolve (node:internal/modules/esm/resolve:768:81)
at moduleResolve (node:internal/modules/esm/resolve:858:18)
at defaultResolve (node:internal/modules/esm/resolve:990:11)
at #cachedDefaultResolve (node:internal/modules/esm/loader:768:20)
at ModuleLoader.resolve (node:internal/modules/esm/loader:745:38)
at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:318:38)
at #link (node:internal/modules/esm/module_job:208:49) {
code: 'ERR_MODULE_NOT_FOUND'
}

Node.js v24.8.0

still getting the same issue

@olivermontes
Copy link
Copy Markdown
Contributor Author

not working on version 0.0.17

➜ web git:(main) ✗ npx -y react-doctor@latest . node:internal/modules/package_json_reader:268 throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null); ^

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'typescript' imported from .npm/_npx/81e833f6d16d6127/node_modules/knip/dist/PrincipalFactory.js at Object.getPackageJSONURL (node:internal/modules/package_json_reader:268:9) at packageResolve (node:internal/modules/esm/resolve:768:81) at moduleResolve (node:internal/modules/esm/resolve:858:18) at defaultResolve (node:internal/modules/esm/resolve:990:11) at #cachedDefaultResolve (node:internal/modules/esm/loader:768:20) at ModuleLoader.resolve (node:internal/modules/esm/loader:745:38) at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:318:38) at #link (node:internal/modules/esm/module_job:208:49) { code: 'ERR_MODULE_NOT_FOUND' }

Node.js v24.8.0

still getting the same issue

For me is working @ameetmadan, maybe i

Screenshot 2026-02-18 at 00 13 35

@olivermontes
Copy link
Copy Markdown
Contributor Author

not working on version 0.0.17

➜ web git:(main) ✗ npx -y react-doctor@latest . node:internal/modules/package_json_reader:268 throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null); ^

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'typescript' imported from .npm/_npx/81e833f6d16d6127/node_modules/knip/dist/PrincipalFactory.js at Object.getPackageJSONURL (node:internal/modules/package_json_reader:268:9) at packageResolve (node:internal/modules/esm/resolve:768:81) at moduleResolve (node:internal/modules/esm/resolve:858:18) at defaultResolve (node:internal/modules/esm/resolve:990:11) at #cachedDefaultResolve (node:internal/modules/esm/loader:768:20) at ModuleLoader.resolve (node:internal/modules/esm/loader:745:38) at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:318:38) at #link (node:internal/modules/esm/module_job:208:49) { code: 'ERR_MODULE_NOT_FOUND' }

Node.js v24.8.0

still getting the same issue

ok, is not publish yet https://www.npmjs.com/package/react-doctor?activeTab=dependencies or command

npm view react-doctor@0.0.17 dependencies
{
commander: '^14.0.3',
'eslint-plugin-react-hooks': '^7.0.1',
knip: '^5.83.1',
ora: '^9.3.0',
oxlint: '^1.47.0',
picocolors: '^1.1.1',
prompts: '^2.4.2'
}

next release? @aidenybai

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.

3 participants