安装Angular 13服务端渲染时遭遇npm依赖冲突错误
解决Angular 13+Material安装SSR时的npm依赖冲突问题
问题根源
当前项目使用@angular/animations@13.3.11,但安装@nguniversal/express-engine@13.1.1时,它依赖的@angular/platform-server@13.3.12要求@angular/animations@13.3.12,两者版本不匹配导致冲突。而@angular/material@13.3.9的peer依赖兼容所有Angular 13.x版本,所以无需担心Material兼容性问题。
可行解决方案
方案1:升级Angular核心包到匹配版本
直接将所有Angular核心依赖升级到13.3.12,消除版本冲突:
npm install @angular/{animations,common,compiler,compiler-cli,core,forms,platform-browser,platform-browser-dynamic,platform-server,router}@13.3.12 --save
完成后重新执行SSR安装命令:
ng add @nguniversal/express-engine
方案2:使用--legacy-peer-deps跳过严格依赖检查
如果不想升级包,可通过npm的旧版依赖解析逻辑跳过版本冲突检查(此方式不会破坏Material兼容性,因为Material兼容所有13.x版本):
ng add @nguniversal/express-engine --legacy-peer-deps
方案3:指定与当前Angular版本匹配的NgUniversal版本
安装与Angular 13.3.x完全匹配的NgUniversal版本,避免拉取更高版本的平台依赖:
npm install @nguniversal/express-engine@13.3.0 @nguniversal/builders@13.3.0 --save
安装完成后,可参考Angular官方文档补全SSR的配置步骤(ng add原本会自动完成的配置)。
内容的提问来源于stack exchange,提问作者Shashank Dhasal
相关产品推荐
相关产品推荐

