安装laravel echo时遇到npm peer依赖警告及1个高危漏洞该如何解决
npm警告与高危漏洞告警的分类处理方案
缺失Peer依赖类警告的按需修复
这类警告是npm的版本匹配机制提示:已安装的包声明了自身运行需要搭配的依赖版本,但当前项目环境未预装这些依赖,可根据实际使用场景选择是否处理:
- 对应
sass-loader@8.0.2的两条提示
该版本的sass-loader预设需要搭配node-sass@^4.0.0、版本不低于3.1.0的fibers才能正常工作。如果项目不需要使用SCSS编译功能,这类警告可以直接忽略;如果确实需要用sass-loader处理样式,安装对应版本的依赖即可:npm install node-sass@^4.0.0 fibers@>=3.1.0 --save-dev
注意:node-sass已停止维护,如果不想使用老旧依赖,可以将sass-loader升级到与当前主流Dart Sass匹配的版本,同样可以消除这类警告。 - 对应
ws@7.4.2的两条提示
ws是Laravel Echo依赖的WebSocket基础库,提示的bufferutil、utf-8-validate是可选的性能优化插件,不是WebSocket运行的必需依赖。即使不安装,ws也能正常完成消息收发,仅编解码性能会略有下降。追求最优运行性能可以安装指定版本的优化包:npm install bufferutil@^4.0.1 utf-8-validate@^5.0.2 --save-dev
本地开发场景下,不安装完全不会影响Echo的功能使用。
平台兼容类警告的处理
关于fsevents的两条跳过提示属于npm的正常运行逻辑:fsevents是仅支持macOS(darwin系统)的文件监听工具,本身不适用于Windows、Linux系统。当前使用Windows系统时,npm自动跳过该平台不兼容的可选依赖,整个流程没有任何错误,不需要做任何修复。
高危漏洞告警的处理
- 首先运行
npm audit查看具体漏洞涉及的依赖包、影响范围:
如果漏洞出现在仅本地打包使用的开发依赖中,不会随项目部署到生产环境,对线上安全没有影响,可以等待官方发布补丁版本后再统一升级。
如果漏洞涉及生产环境运行的依赖,可以运行npm audit fix自动升级到兼容的无漏洞版本,不要强行添加--force参数执行修复,避免破坏现有依赖的版本匹配关系。
内容的提问来源于stack exchange,提问作者Alberto
相关产品推荐
相关产品推荐

