当前位置: 首页 > news >正文

vue项目下npm或yarn下安装echarts多个版本

        最近在大屏展示的时候,用到了百度的echarts图表库,看完效果图后,又浏览了一下echarts官网案例,大同小异。但是搬砖过程中发现实际效果和demo相差甚远,一番折腾发现,项目中安装的是echarts4.x版本,而这次需要用到的echarts5.x版本的。由于echarts关联的其他模块已经上线,echart图表稳步运行中,echarts4.x和echarts5.x 在引用方式也不相同,升级版本是不可能的,代价太大,当时在想一个项目是否可以安装多个版本的依赖包呢?事实情况是可以的。

        一个项目echarts安装多个版本,其实就是给不同版本的包起别名,这样就避免了在package.json文件中出现覆盖情况。

        npm 安装别名官网文档介绍

        别名    <alias>@npm:<name>

主要由 npm install 之类的命令和 package.json 的依赖部分使用,this 通过别名引用包。 <alias> 是在 node_modules 文件夹中具体化的包的名称,而 <name> 指的是在配置的注册表中找到的包名称。

Primarily used by commands like npm install and in the dependency sections in the package.json, this refers to a package by an alias. The <alias> is the name of the package as it is reified in the node_modules folder, and the <name> refers to a package name as found in the configured registry.

官网给的例子

Examples:

  • semver:@npm:@npmcli/semver-with-patch
  • semver:@npm:semver@7.2.2
  • semver:@npm:semver@legacy

在这里 semver: 就是别名了

如果你用的yarn 基本上是和npm是一样的

  yarn 安装别名官网文档介绍

yarn add <alias-package>@npm:<package>

这将在自定义别名下安装一个包。 别名允许安装同一依赖的多个版本,每个版本都通过给定的别名包名称进行引用。 例如,yarn add my-foo@npm:foo 将在你的 dependencies 中以指定的别名 my-foo 安装软件包 foo(最新版本)。 此外,yarn add my-foo@npm:foo@1.0.1 允许安装特定版本的 foo。

This will install a package under a custom alias. Aliasing, allows multiple versions of the same dependency to be installed, each referenced via the alias-package name given. For example, yarn add my-foo@npm:foo will install the package foo (at the latest version) in your dependencies under the specified alias my-foo. Also, yarn add my-foo@npm:foo@1.0.1 allows a specific version of foo to be installed.

以echarts为例,目前项目中已经安装了4.x并运行上线了

安装echarts5.4.3版本,我项目用的是yarn,所以控制台输入

yarn add echarts5@npm:echarts@5.4.3

安装成功后看到package.json 

echarts5.x版本引用方式

import * as echarts from 'echarts5';

当前安装echarts4.x和5.x两个版本,分别为两种命名,在引用时分别引用对应的别名即可。

其他:

一个vue组件中是否可以同时引用echarts4.x 和 echarts5.x 呢,特意试了一下,没有问题,可以同时展示两种。

找了个仪表盘的demo同时在一个组件中实现:

http://www.lryc.cn/news/254731.html

相关文章:

  • 在内网开发中使用Nginx代理来访问钉钉新版服务端API
  • 机器学习算法如何进行特征重要性评估
  • 运行启动vue项目报报错node: --openssl-legacy-provider is not allowed in NODE_OPTIONS解决
  • 网工学习5 交换机端口相关配置
  • 使用Pytorch从零开始实现CLIP
  • Java网络编程 *TCP与UDP协议*
  • 校园外卖小程序源码系统 附带完整的搭建教程
  • TiDB专题---1、TiDB简介和特性
  • 如何二次封装一个Vue3组件库?
  • 2024年网络安全比赛--系统渗透测试(超详细)
  • 高效的单行python脚本
  • 如何通过内网穿透实现无公网IP也能远程访问内网的宝塔面板
  • 【广州华锐互动】VR沉浸式体验铝厂安全事故让伤害教育更加深刻
  • CFLAGS、CXXFLAGS、FFLAGS、FCFLAGS、LDFLAGS、LD_LIBRARY_PATH区别
  • 阿里云租赁费用_阿里云服务器多配置报价表
  • 网络层(1)——概述
  • 计算机网络——网络层
  • Antd search input无中框
  • 【PyTorch】概述
  • 非对象集合交、并、差处理
  • 时间序列预测实战(二十五)PyTorch实现Seq2Seq进行多元和单元预测(附代码+数据集+完整解析)
  • 电子学会C/C++编程等级考试2022年09月(三级)真题解析
  • 【数据库】基于时间戳的并发访问控制,乐观模式,时间戳替代形式及存在的问题,与封锁模式的对比
  • Python 日志(略讲)
  • C++ 指针进阶
  • stm32中滴答定时器与普通定时器的区别
  • 某60区块链安全之薅羊毛攻击实战一学习记录
  • Java程序员,你掌握了多线程吗?(文末送书)
  • 排序算法——桶排序/基数排序/计数排序
  • FFmpeg之将视频转为16:9(横屏)或9:16(竖屏)(三十六)