Heroku部署Node.js应用时wrtc依赖安装失败如何解决?
Heroku部署wrtc依赖失败解决方案
报错核心为node-pre-gyp编译工具无法被wrtc依赖调用,可按以下步骤逐一尝试:
- 方案1:显式安装node-pre-gyp为项目顶层依赖
在本地项目根目录执行以下命令:
提交更新后的npm install node-pre-gyp --savepackage.json、package-lock.json文件后重新推送部署即可,wrtc会优先调用项目顶层安装的编译工具。 - 方案2:修改npm权限配置
在项目根目录新建.npmrc文件,添加如下配置:
该配置会解除Heroku生产环境下npm的脚本执行权限限制,允许wrtc调用编译工具完成安装。unsafe-perm=true - 方案3:升级wrtc版本适配Heroku堆栈
当前使用的Heroku-20堆栈基于Ubuntu 20.04,旧版本wrtc无对应预编译包,将package.json中wrtc的版本指定为^0.4.7及以上即可适配该环境。 - 方案4:清除构建缓存重试
若存在历史缓存干扰,执行Heroku CLI命令清空缓存后重新推送:heroku builds:cache:purge -a 你的应用名称 - 方案5:添加系统级编译依赖
若以上方案均无效,可通过apt buildpack安装wrtc需要的系统依赖:- 项目根目录新建
Aptfile,写入以下内容:
libglib2.0-dev libgtk-3-dev libnotify-dev libnss3-dev libxss-dev libasound2-dev- 在Heroku应用设置中调整buildpack顺序,优先添加apt buildpack,再保留原有的nodejs buildpack,重新推送即可。
- 项目根目录新建
内容的提问来源于stack exchange,提问作者Muhammad Farzat
相关产品推荐
相关产品推荐

