包名称更改导致服务器错误 - 应用程序崩溃

问题描述 投票:0回答:1

为了遵循最佳实践,

我已经相应地更改了包名称,但突然在服务器上收到错误


private@Privates-MacBook-Pro Fullstack-project % ls

PROJECT1

private@Privates-MacBook-Pro Fullstack-project % cd PROJECT1

private@Privates-MacBook-Pro PROJECT1 % ls

client          common          node_modules    package.json    server          yarn.lock

private@Privates-MacBook-Pro PROJECT1 % cd common

private@Privates-MacBook-Pro common % ls

index.js        node_modules    package.json    yarn.lock

private@Privates-MacBook-Pro common % cd ..

private@Privates-MacBook-Pro PROJECT1 % cd server
private@Privates-MacBook-Pro server % ls
controllers     index.js        package.json    routers         yarn.lock

private@Privates-MacBook-Pro server % yarn dev

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',enter image description here
    '/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...

附上我的 jason 的打印屏幕(服务器和公共)+ validateForm.js(在控制器文件夹/服务器内)

enter image description here

我从 1:00 到 3:41 分钟关注了这个视频,并且确实做到了

https://www.youtube.com/watch?v=xT8jzdn2Pq4

之后,我正在运行yarn dev并收到此错误(检查了所有名称数百万时间,一切都像视频中一样 - p.s.视频上还有一个包含所有相关文件的链接:

https://github.com/lesterfernandez/react-live-messenger/tree/05.share.schema

我试图清理缓存,“rm -rf node_modules”并重新安装yarn,但没有任何帮助解决。

yarn cache clean

yarn cache v1.22.22
success Cleared cache.
✨  Done in 0.08s.
private@Privates-MacBook-Pro server % yarn config list

yarn config v1.22.22
info yarn config
{
  'version-tag-prefix': 'v',
  'version-git-tag': true,
  'version-commit-hooks': true,
  'version-git-sign': false,
  'version-git-message': 'v%s',
  'init-version': '1.0.0',
  'init-license': 'MIT',
  'save-prefix': '^',
  'bin-links': true,
  'ignore-scripts': false,
  'ignore-optional': false,
  registry: 'https://registry.yarnpkg.com/',
  'strict-ssl': true,
  'user-agent': 'yarn/1.22.22 npm/? node/v20.12.2 darwin x64',
  lastUpdateCheck: 1713973321143
}
info npm config
{}
✨  Done in 0.03s.
private@Privates-MacBook-Pro server % rm -rf node_modules

private@Privates-MacBook-Pro server % rm package-lock.json
rm: package-lock.json: No such file or directory
private@Privates-MacBook-Pro server % 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.

我需要您的帮助来解决该错误。这是我第一次重命名软件包名称“@..”

reactjs node.js
1个回答
0
投票

我解决了!!!作者忘记提及一些步骤。 当我尝试在位于 FullStack 文件夹的服务器目录中安装依赖项时,出现了问题,该文件夹包含以下结构:

FullStack (root folder)
---Project (folder)
   --package.json (copy my code below)
   --common (folder)
   --server (folder)
   --client (folder)
---package.json (root file copy this file 

到您的文件夹https://github.com/lesterfernandez/react-live-messenger/blob/05.share.schema/package.json

问题在于 Yarn 试图从注册表中获取名为 @mystartup/common 的包,但它并未发布。这个包实际上是一个本地包,我需要在项目中的不同目录中使用它。

经过 Meta AI 的一些研究和帮助,我发现我需要更新我的根 package.json 文件(位于作者发布的 FullStack 文件夹中,但在教程中未提及)https://github.com/lesterfernandez/react -live-messenger/blob/05.share.schema/package.json )将其转换为私有工作区。我添加了以下几行:

{
"name": "Fullstack-project",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"private": true,
"workspaces": [
"packages/*"
]
}

此更改允许我跨目录使用本地包。但是,我很快意识到我还需要更新 Project 文件夹中的 package.json 文件。作者没有发布该文件,但在 Meta AI 的帮助下,我添加了必要的代码:

{
"name": "packages",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {},
"workspaces": {
"packages": ["common", "server", "client"]
}
}

此更新使我能够使用公共目录、服务器目录和客户端目录中的本地包。 进行这些更改后,我在 FullStack 根文件夹和项目文件夹中运行了yarn install。最后,我能够在服务器目录中使用yarn dev启动服务器:

private@Privates-MacBook-Pro server % yarn dev
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

服务器监听4000端口 我希望这个故事可以帮助其他可能遇到类似问题的人。请记住,毅力和正确的资源可以帮助您克服最困难的障碍。快乐编码!

© www.soinside.com 2019 - 2024. All rights reserved.