谈 DevOps 平台落地:前端项目构建又失败了

导读:本篇文章讲解 谈 DevOps 平台落地:前端项目构建又失败了,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

我们看到依赖的版本号的前缀有 ~,有也 ^。这是什么意思呢?

  • ~: 前缀表示,安装大于指定的这个版本,并且匹配到 x.y.z 中 z 最新的版本。

  • ^: 前缀在 ^0.y.z 时的表现和 ~0.y.z 是一样的,然而 ^1.y.z 的时候,就会 匹配到 y 和 z 都是最新的版本。

也就是说,每次执行 npm install ,该项目所依赖的内容,都是有可能变的。

这对我来说是不可思议的。为什么?

因为依赖的版本代表着一个软件的基础。依赖的版本在你不知道的情况下发生变更,就好比建房子,建第一层时,地基是100个平方,建第二层时,地基突然就变成了90个平方。而前端项目中大量这种情况。

你可能会说开源前端node项目都会遵循语义化的版本号,小版本升级不会出问题的。我想说,那只是约定,还是要看那个人遵守不遵守。如果你真相信每个人都遵守,本质上是把软件开发风险的控制权交给了开源软件作者的个人习惯。开发出来的软件注定是不稳定的。

但是,为什么前端项目的依赖的版本号前普遍会加上 ~^ 。在我亲自执行 npm install express 命令时,我知道了原因。因为在执行命令后, package.json 文件中就出现了:"express":"^4.16.0"。也是 npm 在安装依赖时,默认就给版本号加上 ^ 前缀。而很多人可能改都不会去改。这就导致了文章开头所说的那位同事的问题。

后记

真心希望大家固定下 package.json 中的依赖的版本号。这样的前端项目构建起来才有稳定的基础。

同时,我们的 DevOps 平台在设计时,是不是可以考虑增加这么一个功能:自动检测项目有没有固定依赖的版本号,如果没有固定,就告警。

我把这个功能叫做:依赖版本号不稳定预警。

封面图来自:https://pixabay.com/zh/photos/scotland-landscape-mountains-hills-1761292/

我们看到依赖的版本号的前缀有 ~,有也 ^。这是什么意思呢?

  • ~: 前缀表示,安装大于指定的这个版本,并且匹配到 x.y.z 中 z 最新的版本。

  • ^: 前缀在 ^0.y.z 时的表现和 ~0.y.z 是一样的,然而 ^1.y.z 的时候,就会 匹配到 y 和 z 都是最新的版本。

也就是说,每次执行 npm install ,该项目所依赖的内容,都是有可能变的。

这对我来说是不可思议的。为什么?

因为依赖的版本代表着一个软件的基础。依赖的版本在你不知道的情况下发生变更,就好比建房子,建第一层时,地基是100个平方,建第二层时,地基突然就变成了90个平方。而前端项目中大量这种情况。

你可能会说开源前端node项目都会遵循语义化的版本号,小版本升级不会出问题的。我想说,那只是约定,还是要看那个人遵守不遵守。如果你真相信每个人都遵守,本质上是把软件开发风险的控制权交给了开源软件作者的个人习惯。开发出来的软件注定是不稳定的。

但是,为什么前端项目的依赖的版本号前普遍会加上 ~^ 。在我亲自执行 npm install express 命令时,我知道了原因。因为在执行命令后, package.json 文件中就出现了:"express":"^4.16.0"。也是 npm 在安装依赖时,默认就给版本号加上 ^ 前缀。而很多人可能改都不会去改。这就导致了文章开头所说的那位同事的问题。

后记

真心希望大家固定下 package.json 中的依赖的版本号。这样的前端项目构建起来才有稳定的基础。

同时,我们的 DevOps 平台在设计时,是不是可以考虑增加这么一个功能:自动检测项目有没有固定依赖的版本号,如果没有固定,就告警。

我把这个功能叫做:依赖版本号不稳定预警。

封面图来自:https://pixabay.com/zh/photos/scotland-landscape-mountains-hills-1761292/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/71015.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!