如何修复 Next.js Vercel 部署module未找到错误

IT技术 reactjs npm next.js vercel
2021-04-26 21:58:20

我的 next.js 应用程序在我的机器上运行,并且在部署在 Vercel 上时可以正常工作,但现在在 Vercel 上构建时失败并出现以下错误:

我试过删除 node_modules 并运行npm install几次,但没有任何乐趣。

任何帮助将不胜感激。谢谢!

运行“NPM运行构建” 20:43:24.926
tdwcks@1.0.0构建/ vercel / 5ccaedc9 20:43:24.926
下一个构建20:43:24.967
内部/module/ CJS / loader.js:983 20:43:24.967
掷呃; 20:43:24.967
^ 20:43:24.967
错误:找不到module“../build/output/log” 20:43:24.967
需要堆栈:20:43:24.967
- /vercel/5ccaedc9/node_modules/.bin/接下来 20:43:24.967
在 Function.Module._resolveFilename (internal/modules/cjs/loader.js:980:15) 20:43:24.967
在 Function.Module._load (internal/modules/cjs/loader.js:862 :27) 20:43:24.967
在 Module.require (internal/modules/cjs/loader.js:1042:19) 20:43:24.967
在需要(内部/module/cjs/helpers.js:77:18)20:43:24.967
在对象。(/vercel/5ccaedc9/node_modules/.bin/next:2:46) 20:43:24.967
在 Module._compile (internal/modules/cjs/loader.js:1156:30) 20:43:24.967
在 Object.Module ._extensions..js (internal/modules/cjs/loader.js:1176:10) 20:43:24.967
at Module.load (internal/modules/cjs/loader.js:1000:32) 20:43:24.967
at Function.Module._load (internal/modules/cjs/loader.js:899:14) 20:43:24.967
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12) { 20:43 :24.967
代码:'MODULE_NOT_FOUND',20:43:24.967
requireStack:[' /vercel/ 5ccaedc9/ node_modules/ .bin/next'] 20:43:24.967
20:43:24.969
npm 错误!代码 ELIFECYCLE 20:43:24.969
npm ERR!错误 1 ​​20:43:24.970
npm 错误!tdwcks@1.0.0 构建:next build 20:43:24.970
npm ERR!退出状态 1 20:43:24.970
npm ERR!20:43:24.970
npm 错误!tdwcks@1.0.0 构建脚本失败。20:43:24.970
npm 错误!这可能不是 npm 的问题。上面可能有额外的日志输出。20:43:24.974
npm 错误!可以在以下位置找到此运行的完整日志:20:43:24.974
npm ERR!/vercel/.npm/_logs/2020-06-17T19_43_24_971Z-debug.log 20:43:24.979
错误:命令“npm run build”以 1 20:43:25.342
[dmesg]退出:20:43:25
[ 962.449223] ecs-bridge: 端口 1(veth2a021300) 进入禁用状态 20:43:25.342
[ 962.453655] 设备 veth2a021300 进入混杂模式 20:43:25.3246
端口20:43:25.3246进入阻塞状态 20679 :2065.3245 2068 ecs-bridge 43:25.342
[962.462004] ecs-bridge: 端口 1(veth2a021300) 进入转发状态 20:43:26.242
用“package.json”完成

这是我的 Package.json

{
  "name": "tdwcks",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "next",
    "build": "next build",
    "start": "next start"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "cjs": "0.0.11",
    "core-util-is": "^1.0.2",
    "framer-motion": "^1.11.0",
    "gray-matter": "^4.0.2",
    "next": "^9.4.4",
    "raw-loader": "^4.0.1",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-ga": "^3.0.0",
    "react-markdown": "^4.3.1",
    "react-player": "^2.2.0",
    "react-scripts": "^3.4.1"
  },
  "devDependencies": {
    "postcss-preset-env": "^6.7.0",
    "tailwindcss": "^1.4.6"
  }
}
4个回答

如果您不小心提交node_modules到项目的 Git 存储库,通常会发生此错误

您可以尝试执行以下操作吗?

  1. 确保所有更改都已提交并且您有一个干净的目录。
  2. 运行rm -rf node_modules(或删除 Windows 上的文件夹)。
  3. 运行git add -A然后git commit -m "Remove all module files"
  4. 添加node_modules到您的.gitignore文件(并保存)。
  5. 运行git add -A然后git commit -m "Update ignored files"
  6. 通过git status.
  7. 然后,运行git push此部署应该适用于 Vercel。
  8. 最后,重新运行npm iyarn根据您的包管理器使您的本地副本工作。

我必须编辑我的package.json以使用目录中提供next二进制node_modules/next文件:

"scripts": {
  "start": "node_modules/next/dist/bin/next start -p $PORT"
}

不是最优雅的修复,但它有效。

我有这个完全相同的问题。我认为这可能是 Vercel 部署基础架构的内部问题。请注意它失败的行:

Error: Cannot find module '../build/output/log' 20:43:24.967
Require stack: 20:43:24.967
- /vercel/5ccaedc9/node_modules/.bin/next 20:43:24.967

我的问题从昨天开始,出乎意料地 - 即一个非常简单的提交。就我而言,以前成功的部署也会失败。同样,删除项目并重新开始也无济于事。我正在与 Vercel 支持人员进行沟通,但他们尚未承认问题已经结束或提供任何解决方案。

我遇到过同样的问题。在我的 github 桌面中,我注意到在编辑器中大写的文件不在 github 桌面中。修复了拼写以匹配 github 上显示的内容并且项目构建成功。