Yarn v4 Monorepo中CLI运行drizzle-kit无法找到drizzle-orm
Yarn v4 + PNP + Monorepo下drizzle-kit无法检测drizzle-orm的问题
我用Yarn Workspaces搭建了Monorepo项目,升级到Yarn v4后,直接通过CLI运行drizzle-kit时出现无法检测到drizzle-orm的错误。
执行命令
yarn drizzle-kit generate --name foo
错误信息
/Users/anthony/dev/theproject/.pnp.cjs:13083 Error.captureStackTrace(firstError); ^ Error: drizzle-kit tried to access drizzle-orm, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. Required package: drizzle-orm (via "drizzle-orm/casing") Required by: drizzle-kit@npm:0.26.2 (via /Users/anthony/.yarn/berry/cache/drizzle-kit-npm-0.26.2-c249bdc6e1-10c0.zip/node_modules/drizzle-kit/) Require stack: - /Users/anthony/.yarn/berry/cache/drizzle-kit-npm-0.26.2-c249bdc6e1-10c0.zip/node_modules/drizzle-kit/bin.cjs at require$$0.Module._resolveFilename (/Users/anthony/dev/theproject/.pnp.cjs:13083:13) at Module._load (node:internal/modules/cjs/loader:1074:27) at require$$0.Module._load (/Users/anthony/dev/theproject/.pnp.cjs:12974:31) at TracingChannel.traceSync (node:diagnostics_channel:315:14) at wrapModuleLoad (node:internal/modules/cjs/loader:217:24) at Module.require (node:internal/modules/cjs/loader:1339:12) at require (node:internal/modules/helpers:126:16) at src/utils.ts (/Users/anthony/.yarn/berry/cache/drizzle-kit-npm-0.26.2-c249bdc6e1-10c0.zip/node_modules/drizzle-kit/bin.cjs:6775:21) at __init (/Users/anthony/.yarn/berry/cache/drizzle-kit-npm-0.26.2-c249bdc6e1-10c0.zip/node_modules/drizzle-kit/bin.cjs:10:56) at Object.<anonymous> (/Users/anthony/.yarn/berry/cache/drizzle-kit-npm-0.26.2-c249bdc6e1-10c0.zip/node_modules/drizzle-kit/bin.cjs:85751:1)
当前配置
子项目@myproject/users-api的package.json(部分)
{ "name": "@myproject/users-api", "version": "1.0.0", "dependencies": { "drizzle-orm": "^0.35.1", . . . }, "devDependencies": { "drizzle-kit": "^0.26.2", . . . }, . . . }
项目根目录的.yarnrc.yml
nodeLinker: pnp
已验证的可行操作
- 把drizzle-kit和drizzle-orm安装到项目根目录,通过workspace命令运行成功:
yarn workspace @myproject/users-api db:generate foo - 将nodeLinker切换为
node-modules后,直接执行yarn drizzle-kit generate --name foo也能正常运行:nodeLinker: node-modules
请问我是不是遗漏了什么必要的配置?
内容的提问来源于stack exchange,提问作者callmetwan
相关产品推荐
相关产品推荐

