全局安装Angular CLI 13.3.10后,新建项目为何仍是13.3.11?
Angular CLI指定版本创建项目却生成更高补丁版本的原因及解决办法
核心原因分析
- npm缓存残留:npm会缓存已下载的包文件,即便你卸载并重装了
13.3.10版本,缓存中留存的13.3.11补丁包可能被优先调用,导致ng new时自动拉取了缓存内的最新版本。 - npm默认补丁版本自动升级:Angular CLI创建项目时,默认会在
package.json中给依赖加上^前缀(例如^13.3.10),这种语义化版本规则允许npm安装同主版本号下的最新补丁包,因此13.3.11会被自动安装。 - 全局CLI未彻底清理:虽然执行了全局卸载命令,但npm全局安装目录可能残留了旧的CLI文件,导致实际运行的CLI版本并非你重装的
13.3.10。
解决步骤
清理npm缓存并重装指定版本
执行命令彻底清理npm缓存:npm cache clean --force之后重新安装指定版本的全局Angular CLI:
npm install -g @angular/cli@13.3.10验证全局CLI版本
运行以下命令确认当前全局CLI版本:ng version如果显示仍为
13.3.11,可以通过npm root -g查看npm全局包的安装路径,手动删除该路径下的@angular文件夹,再重新执行安装命令。创建项目时锁定精确版本
若要强制生成指定版本的项目,可在ng new命令中直接指定版本:ng new {project name} --version 13.3.10或者创建项目后,手动修改
package.json中所有@angular/*相关依赖的版本号为13.3.10,再执行npm install重新安装依赖。
内容的提问来源于stack exchange,提问作者daandsp
相关产品推荐
相关产品推荐

