AWS Ubuntu服务器Hyperledger Composer Angular应用编译卡顿咨询
解决AWS Ubuntu服务器上Angular构建卡在92%的问题
这种本地正常、服务器构建卡顿的情况我碰到过好几次,大概率是环境差异或者资源限制导致的,结合你怀疑的node_modules版本问题,给你几个具体的排查和解决方向:
1. 严格统一Node.js和npm版本
本地Mac和AWS服务器的Node/npm版本不匹配是最常见的诱因。先在本地终端执行node -v和npm -v记下版本号,然后在AWS服务器上同步这个版本:
- 如果服务器上是用系统包管理器装的Node,先卸载它(比如
sudo apt remove nodejs npm) - 用nvm来管理版本(避免系统级安装的冲突):
- 安装nvm:执行官方提供的安装脚本(可通过curl命令获取并运行)
- 重启终端或执行
source ~/.bashrc让nvm生效 - 安装对应版本:
nvm install [你本地的Node版本号] - 设置为默认版本:
nvm alias default [版本号]
2. 彻底清理依赖后重装
服务器上的node_modules可能存在缓存损坏、版本不一致的包,完全清空后重装能解决很多隐性问题:
- 删除服务器上的
node_modules文件夹:rm -rf node_modules - 删除
package-lock.json文件:rm package-lock.json - 重新安装依赖:
npm install - 如果你用yarn的话,同步执行
yarn cache clean && yarn install
3. 临时关闭构建优化定位问题
卡在chunk asset optimization环节,通常和资源压缩、代码混淆这类耗时的优化有关,服务器的硬件资源可能不如本地Mac。可以先关闭优化看是否能正常构建:
- 打开项目根目录的
angular.json,找到architect.build.options,把optimization改成false:"architect": { "build": { "options": { "optimization": false, // 其他配置... } } } - 再执行
npm start,如果能顺利完成构建,说明是某个优化步骤导致的卡顿。可以再逐步开启cssOptimization、scriptsOptimization等单独参数,定位具体是哪个环节出问题。
4. 检查服务器的资源瓶颈
AWS的低配置实例(比如t2.micro)CPU和内存都比较有限,构建Angular项目时容易资源耗尽导致卡顿:
- 用
htop或top命令查看构建时的CPU、内存占用,如果接近100%,可以:- 临时升级服务器实例规格(比如换成t2.small)
- 或者添加交换空间缓解内存压力:
sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile
5. 调整文件监听限制
Ubuntu系统默认的文件监听数量有限,Angular构建需要监听大量文件,可能触发限制导致卡顿:
- 执行以下命令调整inotify限制:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf sudo sysctl -p - 也可以尝试启动时禁用文件监听:
npm start -- --no-watch
6. 对比本地和服务器的依赖树
用npm ls分别在本地和服务器生成完整的依赖树,对比是否有版本差异。重点关注和资源处理相关的包(比如webpack、css-loader、file-loader等),如果发现服务器上的包版本和本地不一致,手动指定版本号到package.json后重新安装。
建议先从统一Node版本和清理依赖开始试,这两个步骤解决过我遇到的大部分类似问题,如果还是不行再逐步排查资源和配置问题。
内容的提问来源于stack exchange,提问作者alg123
相关产品推荐
相关产品推荐

