node.js - 在服务器上运行 next.js 项目的问题
问题描述
我目前正在尝试在 Linux 服务器上运行 next.js 的项目(简单测试项目)。该项目能够在本地运行没有问题,但是每次我运行npm run dev
或npm run build
我得到以下错误:
node:events:368
throw er; // Unhandled 'error' event
^
Error: spawn /nfs/encs/ArchDep/x86_64.EL7/pkg/node-v16.13.0/root/bin/node EAGAIN
at Process.ChildProcess._handle.onexit (node:internal/child_process:282:19)
at onErrorNT (node:internal/child_process:477:16)
at processTicksAndRejections (node:internal/process/task_queues:83:21)
Emitted 'error' event on ChildProcess instance at:
at Process.ChildProcess._handle.onexit (node:internal/child_process:288:12)
at onErrorNT (node:internal/child_process:477:16)
at processTicksAndRejections (node:internal/process/task_queues:83:21) {
errno: -11,
code: 'EAGAIN',
syscall: 'spawn /nfs/encs/ArchDep/x86_64.EL7/pkg/node-v16.13.0/root/bin/node',
path: '/nfs/encs/ArchDep/x86_64.EL7/pkg/node-v16.13.0/root/bin/node',
spawnargs: [
'/nfs/www/groups/h/hn_comp353_2/comp353/node_modules/jest-worker/build/workers/processChild.js'
]
}
关于如何解决这个问题的任何想法?
解决方案
我在你spawnargs
看到它正在尝试执行jest
,所以这个失败与你的 Jest 测试无法在你的 Linux 服务器上运行有关。这可能是由于 Jest 尝试生成的线程多于服务器上可用的资源造成的。这在资源有限的高度虚拟化环境中很常见。
您可以尝试使用--runInBand
or运行 Jest--maxWorkers=2
吗?如果您正在运行 Jest,npm
则必须package.json
像这样添加命令:
{
"scripts": {
"test": "jest --runInBand"
}
}
一般来说,NodeJSError: spawn
错误很难调试,并且可能由各种问题引起。还有另一个SO Q&A 有很多关于这个主题的资源,你可以参考。
推荐阅读
- swagger - 我可以将环境变量传递给 openapi-generator 吗?
- c# - System.IO.Pipelines 基于长度字段的 TCP 解码
- python - Pyqt5 QCoreApplication::exec: 事件循环已经在运行
- json - httpBody 没有通过 URLRequest 传递 JSON 正文
- vhdl - 生成包含负数的随机数 vhdl
- angular - 有效地过滤一组可观察对象
- javascript - getElementsByClassName onclick 并返回数据
- html - 我不知道如何在某个断点之后禁用声明
- javascript - 单击图像时移动图像的功能?
- function - Elixir 函数是否具有最大的 Airty?