回滚npm包至旧版本失败?commitlint版本回退遇依赖问题
关于npm依赖版本机制的问题(以commitlint为例)
- 我已使用
commitlintnpm包校验提交信息数月,还基于TypeScript开发了适配仓库规则的commitlint插件。 commitlint发布17.4.0版本后,升级了TypeScript依赖版本,导致我的插件编译失败(涉及any类型问题,后续排查)。
尝试的临时方案及问题
- 为临时解决问题,我试图在CI流程中回滚至
commitlintv17.3.0,执行命令:
但仍出现TypeScript编译错误。npm install @commitlint/config-conventional@17.3.0 - 尝试全局安装(添加
-g参数、使用sudo),问题依旧。查看CI日志发现npx调用时出现提示:npm WARN exec The following package was not found and will be installed: commitlint@17.4.0
即npx未识别到已安装的旧版本。 - 随后尝试直接在npx命令中指定版本:
结果仍然失败,日志显示安装npx commitlint@17.3.0 --from HEAD~1 --to HEAD --verbosecommitlint@17.3.0后依旧出现TypeScript编译错误。
疑问
- 旧版本的npm包是否会仍然指向最新版的依赖包?这是否是npm/npx的bug?
更新发现
commitlint依赖@commitlint/types包,但该包似乎没有17.3.0版本。
内容的提问来源于stack exchange,提问作者knocte
相关产品推荐
相关产品推荐

