You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改Scoped包名引发服务器错误,应用崩溃求助

无法找到本地作用域包 @mystartup/common 的解决方案

问题背景

修改本地共享包名称为@mystartup/common后,启动服务器时触发MODULE_NOT_FOUND错误,提示找不到该包;执行yarn install时也报错,显示在yarn registry中找不到@mystartup/common。已尝试yarn cache clean、删除node_modules重装依赖,问题未解决。

错误日志

启动服务时的错误:

yarn run v1.22.22
$ nodemon index.j
[nodemon] 3.1.0
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,cjs,json
[nodemon] starting `node index.j index.js`
node:internal/modules/cjs/loader:1146
  throw err;
  ^

Error: Cannot find module '@mystartup/common'
Require stack:
- /Users/private/my-app/Fullstack-project/PROJECT1/server/controllers/validateForm.js
- /Users/private/my-app/Fullstack-project/PROJECT1/server/routers/authRouter.js
- /Users/private/my-app/Fullstack-project/PROJECT1/server/index.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1143:15)
    at Module._load (node:internal/modules/cjs/loader:984:27)
    at Module.require (node:internal/modules/cjs/loader:1231:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/Users/private/my-app/Fullstack-project/PROJECT1/server/controllers/validateForm.js:1:24)
    at Module._compile (node:internal/modules/cjs/loader:1369:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1427:10)
    at Module.load (node:internal/modules/cjs/loader:1206:32)
    at Module._load (node:internal/modules/cjs/loader:1022:12)
    at Module.require (node:internal/modules/cjs/loader:1231:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/Users/private/my-app/Fullstack-project/PROJECT1/server/controllers/validateForm.js',
    '/Users/private/my-app/Fullstack-project/PROJECT1/server/routers/authRouter.js',
    '/Users/private/my-app/Fullstack-project/PROJECT1/server/index.js'
  ]
}

Node.js v20.12.2
[nodemon] app crashed - waiting for file changes before starting...

执行yarn install时的错误:

yarn install v1.22.22
[1/4] 🔍  Resolving packages...
error Error: https://registry.yarnpkg.com/@mystartup%2fcommon: Not found
    at params.callback [as _callback] (/Users/private/.cache/node/corepack/v1/yarn/1.22.22/lib/cli.js:66680:18)
    at self.callback (/Users/private/.cache/node/corepack/v1/yarn/1.22.22/lib/cli.js:141410:22)
    at Request.emit (node:events:518:28)
    at Request.<anonymous> (/Users/private/.cache/node/corepack/v1/yarn/1.22.22/lib/cli.js:142382:10)
    at Request.emit (node:events:518:28)
    at IncomingMessage.<anonymous> (/Users/private/.cache/node/corepack/v1/yarn/1.22.22/lib/cli.js:142304:12)
    at Object.onceWrapper (node:events:632:28)
    at IncomingMessage.emit (node:events:530:35)
    at endReadableNT (node:internal/streams/readable:1696:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

解决方案

方法1:使用yarn link关联本地包

  1. 进入common目录,执行:
    yarn link
    
  2. 进入server目录,执行:
    yarn link @mystartup/common
    

该命令会在server/node_modules中创建指向本地common包的软链接,让Node.js能正确找到该包。

方法2:在package.json中指定本地路径

打开server/package.json,修改@mystartup/common的依赖配置为本地路径:

"dependencies": {
  // 保留其他依赖
  "@mystartup/common": "file:../common"
}

修改后执行yarn install,yarn会直接从本地路径安装该包。

额外检查项

  1. 确认common/package.json的name字段正确:
    {
      "name": "@mystartup/common",
      "main": "index.js" // 确保入口文件正确
    }
    
  2. 检查validateForm.js中的导入语句拼写无误:
    const { /* 导出内容 */ } = require('@mystartup/common');
    

原因说明

带@前缀的作用域包,yarn默认会去公共registry(如yarnpkg.com)查找。而你的@mystartup/common是本地开发的私有包,未发布到公共registry,因此需要通过yarn link或本地路径配置,让yarn知道该包的实际位置。

内容的提问来源于stack exchange,提问作者Leo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 05:42:03