首页 前端知识 构建报错:To install them, you can run: npm install --save viewerjs viewerjs/dist/viewer.css

构建报错:To install them, you can run: npm install --save viewerjs viewerjs/dist/viewer.css

2024-08-10 00:08:09 前端知识 前端哥 228 258 我要收藏

package.json: 

   这个文件主要用于管理项目的元数据和依赖列表。文件中包含了项目名称、版本、描述、作者等信息,并且列出了项目所依赖的npm packages及其版本号。当你运行npm install命令时,npm会查看package.json文件,自动下载所需要的包并安装。 

package-lock.json: 

    这个文件被npm用来锁定安装时的依赖的精确版本号。这样,当你的项目在不同的环境(例如,不同开发者的电脑,或者生产环境)中安装依赖时,可以确保都是相同版本,避免“在我电脑上可以运行,为什么在你那里就不行”的问题。package-lock.json文                    件由npm install命令自动生成或更新。 

举个例子,你在package.json里可以写"lodash": "^4.17.15"这样的版本号,符号"^"表示安装4.x系列的最新版本。此时,如果lodash有一个新的小版本4.18.0发布,那么当运行npm install命令时,可能会安装到这个新版本。但是,如果你有一个package-lock.json文件,且文件中记录的lodash版本为4.17.15,那么不论什么环境下,npm都会按照lock文件安装4.17.15版本的lodash,从而保证了版本的稳定一致性。 

两个文件共同工作,确保了npm依赖的版本一致且易于管理。package.json通过指定包和符合要求的版本范围,而package-lock.json则锁定了具体的安装版本。 

使用package-lock.json:的优势: 不需要项目每次安装时都需要重新解析依赖关系并下载,而无法利用到package-lock.json文件带来的性能优化和版本一致性保证。

在我们的构建中 提到项目构建失败的原因是缺少viewerjs依赖,也就是说项目有用到viewerjs依赖的地方,而该项目引入viewerjs依赖的方式是通过v-viewer引入

项目中"v-viewer": "^1.6.4" 的意思是

^1.6.4 : 这是一个semver(Semantic Versioning,语义化版本)范围。^的意思是允许安装1.6.4以上但小于2.0.0的最新版本。也就是说,可以自动下载并安装所有小更新(1.x.x)、补丁更新(1.6.x),但不包括大版本升级(如2.x.x),因为大版本更新可能会包含重大改动,有可能造成兼容性问题。

因此,"v-viewer": "^1.6.4" 的意思就是指定在项目中使用v-viewer这个包,并且使用的版本可以是1.6.4以上,但是小于2.0.0的任何版本。那么我们在npm install 的时候具体会下载哪个v-viewer版本依赖呢 ,因为没有指定v-viewer的具体版本,所以在npm install 的时候会下载最新的v-viewer版本的依赖 ,之前问题没有发生是因为直到npm官网里面的v-viewer的1.7.2版本之前viewerjs依赖都会作为v-viewer的Dependency 而1.7.2版本之之后官方更新了v-viewer依赖 viewerjs依赖不再作为v-viewer的Dependency (原因可能是:避免第三方依赖的限制:使用第三方库作为依赖可能会受到许可、维护和更新等方面的限制。通过将viewerjs集成到 v-viewer 中,可以减少对外部库的依赖,从而更好地控制项目的整体稳定性、安全性和可维护性。)导致viewerjs依赖没有被下载,构建失败。

解决方案:

  • 项目在package.json文件明确写明需要哪个版本的依赖,比如说项目有用到viewerjs依赖 那就在文件中加入viewerjs": "^1.11.6" ,不要采用通过依赖去引入依赖的方式。或着是明确写明我要哪个版本的依赖 比如"v-viewer": "1.6.4 我只要1.6.4版本的v-viewer的依赖  因为这个版本依赖的 Dependency会用到viewerjs" 避免官网版本更新造成不可预知的问题。
  • 加入package-lock.json文件,package-lock.json做代码版本更新和维护,Jenkins构建时通过这两个文件来确定要下载哪个版本依赖。
转载请注明出处或者链接地址:https://www.qianduange.cn//article/15181.html
评论
发布的文章

Jquery (第三章笔记)

2024-08-18 00:08:37

jquery实现tab切换简单好用

2024-08-18 00:08:35

jQuery Cookie 插件使用教程

2024-08-14 22:08:01

jQuery的DOM操作

2024-08-18 00:08:21

echarts显示中国地图

2024-08-18 00:08:11

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!