部署应用时push.js安装失败:本地npm安装成功但云端安装脚本报错
push.js 云端环境npm安装失败排查方案
本地安装成功、云端部署执行安装脚本失败,核心原因集中在postinstall脚本网络连通性、源配置异常两类,按以下优先级逐一排查解决:
- 优先跳过非必要的安装后脚本
push.js 1.x版本的postinstall生命周期脚本仅用于展示开源捐赠提示、拉取非核心的测试资源,和前端通知的核心功能无关。云端构建时直接在安装命令中追加忽略脚本参数即可绕过报错:npm install push.js --ignore-scripts
如果你的云服务商支持配置构建环境变量,同步添加DISABLE_OPENCOLLECTIVE=true可以彻底屏蔽该包安装阶段的所有外部网络请求。
注意:该操作不会对push.js的正常调用产生任何影响,安装完成后直接import即可使用所有前端通知能力。 - 校验云端环境的npm源配置
多数云平台构建节点默认使用内部镜像源,存在包版本同步不及时、文件残缺的问题,执行安装命令前先切换到稳定的公共镜像源:npm config set registry https://registry.npmmirror.com
切源后重新执行安装流程即可。 - 替代方案(推荐)
push.js目前已经停止维护超过3年,所有核心能力都可以通过浏览器原生Notification API实现,无额外依赖、不存在安装失败风险,核心实现代码如下:
调用方式和push.js基本一致,支持标题、正文、图标、点击回调等所有常用配置。export function sendNotification(title, config = {}) { if (!window.Notification) return if (Notification.permission === 'granted') { new Notification(title, config) return } if (Notification.permission !== 'denied') { Notification.requestPermission().then(permission => { if (permission === 'granted') new Notification(title, config) }) } }
内容的提问来源于stack exchange,提问作者Trung Lê Đình
相关产品推荐
相关产品推荐

