ec2 在 npm install 上挂起

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

我有免费的 ec2(1GB RAB,500MB 交换内存)

当 Jenkins 在项目上执行

npm install
时,ec2 就会挂起,停止响应,只有重新启动才能使其生效。

通过

htop
,我分析了情况并发现 RAM 只是耗尽和阻塞,而我创建的额外交换内存没有帮助。

因为我有一个学校项目,所以我想使用免费层并以某种方式在那里启动该项目(我也尝试过

npm run build
,但目前它有太多问题)。

我也尝试过yarn,但是其他两个包需要不同版本的

babel-loader
,但存在问题。

有没有办法以自动方式执行

npm install
(这样 Jenkins 就可以只用脚本 shell 来完成)并且无需挂起 ec2?

node.js npm npm-install yarnpkg
2个回答
2
投票

我遇到了同样的问题,服务器停止安装。虽然绝对可以手动上传 node_modules,但我更喜欢让 npm 为我做这件事。我通过在运行之前删除一半的依赖项来解决这个问题

npm install
。完成后,我将它们添加回来并第二次运行
npm install
。现在一切都已安装完毕。
从现在开始
npm install
应该可以正常工作,因为大多数依赖项已经安装。但是,一次添加或更新许多依赖项可能会导致服务器再次挂起。


0
投票

我遇到了同样的问题,我不得不重新启动实例几次,但它停留在执行命令的中间

npm i

问题是新实例最初只有 1gib 内存,因此当您执行 npm 命令时,实例会消耗所有内存,因此它会冻结并且永远不会完成安装。

解决方案是创建或分配交换内存,在我的例子中我有Ubuntu Server 22.04,按顺序执行以下命令:

  1. 我们创建一个4GB的目录用于交换内存

    fallacate -l 4G /交换文件

  2. 我们授予读写权限,以便系统可以使用该目录

    chmod 600 /交换文件

  3. 我们将目录分配给交换系统

    mkswap /交换文件 交换/交换文件 交换--显示 自由-h

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