egg icon indicating copy to clipboard operation
egg copied to clipboard

pnpm dev 启动 egg 时 ts 报错

Open Hishengs opened this issue 4 years ago • 5 comments

What happens?

pnpm dev 启动 egg 时 ts 报错

How To Reproduce

  1. mkdir egg-demo && cd egg-demo
  2. npm init egg --type=ts
  3. pnpm install
  4. pnpm dev

报错截图

image

Hishengs avatar Jan 19 '22 02:01 Hishengs

感觉又是 pnpm 子依赖提升到平级导致插件的 typings 找不到。。。

@whxaxes 瞅瞅

atian25 avatar Jan 19 '22 02:01 atian25

本来是打算用 pnpm workspaces 做 monorepo 的,遇到以上问题; 接着想换成 yarn workspaces 依然遇到问题.. monorepo 目录结构如下(仅示意)

|-- server // eggjs
|-- packages // shared packages
|-- package.json
|-- yarnrc.yml

package.json

...
"workspaces": [
    "packages/*",
    "server"
  ],
...

yarnrc.yml

yarnPath: .yarn/releases/yarn-3.1.1.cjs
nodeLinker: "node-modules"
enableGlobalCache: true

复现

  1. yarn set version berry
  2. yarn install
  3. cd server
  4. yarn dev

报错

Error: egg is not found in /Users/xxx/CodeSpace/yyy/zzz-repo/server/node_modules
    at assertAndReturn (/Users/xxx/CodeSpace/yyy/zzz-repo/node_modules/egg-utils/lib/framework.js:66:9)
    at Object.getFrameworkPath (/Users/xxx/CodeSpace/yyy/zzz-repo/node_modules/egg-utils/lib/framework.js:49:10)
    at DevCommand.formatArgs (/Users/xxx/CodeSpace/yyy/zzz-repo/node_modules/egg-bin/lib/cmd/dev.js:91:28)
    at formatArgs.next (<anonymous>)
    at onFulfilled (/Users/xxx/CodeSpace/yyy/zzz-repo/node_modules/co/index.js:65:19)
    at /Users/xxx/CodeSpace/yyy/zzz-repo/node_modules/co/index.js:54:5
    at new Promise (<anonymous>)
    at co (/Users/xxx/CodeSpace/yyy/zzz-repo/node_modules/co/index.js:50:10)
    at toPromise (/Users/xxx/CodeSpace/yyy/zzz-repo/node_modules/co/index.js:118:63)
    at next (/Users/xxx/CodeSpace/yyy/zzz-repo/node_modules/co/index.js:99:29)

其中报错的文件 egg-utils/lib/framework.js:66:9

image

建议

是否不要直接用existsSync 的方式查找模块,是否还有别的地方需要换成 require.resolve

@atian25

Hishengs avatar Jan 19 '22 04:01 Hishengs

@whxaxes 我用 pnpm 也遇到了这个问题,现在有进展吗

ericlee33 avatar Jul 09 '22 18:07 ericlee33

可能跟 https://github.com/eggjs/egg-core/pull/238 有关,不过这个 PR 暂时回滚了,等我们修复完内部的几个 Bug 后,再继续发布。

atian25 avatar Jul 10 '22 11:07 atian25