npm 无法同时安装同一个 package 的不同版本,以往遇到这种需求的时候,我的办法是自己新建一个包,然后在新建的包里安装目标包的一个版本,然后暴露出去。这样,项目就可以依赖新建的包和另一个版本,实现同时依赖两个版本的目的。

在 npm 6.9 以后,npm 可以为安装的包使用别名,可以近乎完美地解决这个问题了。elasticsearch-js 项目有一段详细说明如何使用,我把这一段翻译了一下。

同时使用多个版本

如果你同时使用多个版本的 Elasticsearch, 你需要使用对应的多个客户端。同时安装同一个包的多个版本在以前是不可能的,但是 npm 6.9 以后,你可以用别名达到目的。

安装不同版本的客户端你必须运行以下命令:

npm install <alias>@npm:@elastic/elasticsearch@<version>

比方说要同时安装 7.x6.x, 运行以下命令

npm install es6@npm:@elastic/elasticsearch@6
npm install es7@npm:@elastic/elasticsearch@7

package.json 文件就会多出下面的两行:

"dependencies": {"es6": "npm:@elastic/elasticsearch@6.7.0","es7": "npm:@elastic/elasticsearch@7.0.0"
}

在代码中将刚刚定义的别名 require 进来。

const {Client: Client6} = require('es6')
const {Client: Client7} = require('es7')const client6 = new Client6({node: 'http://localhost:9200'})
const client7 = new Client7({node: 'http://localhost:9201'})client6.info(console.log)
client7.info(console.log)

最后,如果你想使用下一版本 Elasticsearch(即 Elasticsearch 的 master 分支) 的客户端,你可以运行下面的命令:

npm install esmaster@github:elastic/elasticsearch-js

补充

由上文的最后一条命令可看出,别名不局限于从 npm 下载的包。从 github 或者其它自定义 git 地址下载的包也可以使用别名。npm 如何安装其它来源的包可以参照官方文档

https://wpchou.github.io/2019/11/21/npm-install-multiple-versions-of-same-package.html

npm 同时安装同一个包的不同版本(npm@6.9 alias)相关推荐

  1. npm命令--安装依赖包--用法/详解

    原文网址:npm命令--安装依赖包--用法/详解_IT利刃出鞘的博客-CSDN博客 简介 本文介绍npm如何安装依赖包. 用法 命令 作用 详述 npm install <pkg> //同 ...

  2. Pip/python-如何查看已安装的包有哪些版本?如何查看某个包存在哪些版本?pip list-pip freeze-pip show package

    目录 一.如何查看已安装的包有哪些版本? 1.在terminal终端模式或者cmd命令行模式下 1.1显示所有包pip list和pip freeze 1.2显示指定包findstr.show..__ ...

  3. Node.js 官网入门教程(二) npm(安装、包版本、卸载、npx)、package.json(scripts、devDependencies)package-lock.json(语义版本规则符号

    Node.js 官网入门教程(二) npm(包管理.安装.包版本.卸载.npx).package.json(scripts.devDependencies).package-lock.json(语义版 ...

  4. 使用npm更新所有依赖包到最新版本

    本篇文章参考文章 - npm包之npm-check-updates 文章目录 npm-check-updates 背景交代 npm-check-updates   一键升级所有依赖的插件为 npm-c ...

  5. 安装第三方包查看python版本/第三方包版本

    安装第三方包时,经常需要查看python版本,以及是否安装第三方包及版本,每次都要百度下指令. 故小编整理了下安装/卸载第三方包,查看python/第三包的指令,具体如下: 一.python安装/卸载 ...

  6. pip 查看要安装的包的所有版本的方法

    以Django为例 pip install django==  然后回车即可

  7. NPM:nodejs官方包管理工具的简介、安装、使用方法之详细攻略

    NPM:nodejs官方包管理工具的简介.安装.使用方法之详细攻略 目录 NPM之nodejs官方包管理工具的简介 NPM之nodejs官方包管理工具的安装 NPM之nodejs官方包管理工具的使用方 ...

  8. python安装卸载及查看python版本/第三方包版本

    文章目录 1. 在线安装anaconda anaconda下载安装 在线安装第三方库 python 常用第三方包镜像安装 2. 离线安装anaconda 离线安装包下载网址 whl 离线安装 tar ...

  9. npm更新依赖包到最新版本

    更新依赖包到最新版本 npm install 依赖包名称@latest -D 查看最新版本 npm info 依赖包名称 version(查看当前最新版本) npm info 依赖包名称 versio ...

  10. 包管理工具,npm、yarn、pnpm

    1.包管理工具概述 本门课程的前置知识:JavaScript.ES6.模块化.git 本门课程的所有代码均书写在 nodejs 环境中,不涉及浏览器环境 概念 模块(module) 通常以单个文件形式 ...

最新文章

  1. c语言代码,输入两个数,输出第一个数到第二个数之间所有的数
  2. 【转】WPF中关于样式和模板的区别
  3. idea插件导出_Intellij IDEA 中我一直在用的几个插件
  4. fastnest怎么一键排版_FastNEST数控编程组合排版与技巧探讨
  5. java calendar类_Java世界最常用的工具类库
  6. C++::My Effective C++
  7. 【2022年江西省研究生数学建模】水汽过饱和的核化除霾 31页论文分析
  8. vs2008 成功编译 easyMule VeryCd V1.1.13
  9. 2020,咋赚钱?|【常垒·常识】
  10. 每天学点统计学——指数
  11. 加法器verilog
  12. 基于强化学习工具箱的自适应巡航控制系统
  13. ad room 拷贝
  14. 如何精确计算 LoRaWAN 终端电池寿命
  15. (转)《达·芬奇密码》解读解密
  16. 24、抽象方法和抽象类的写法
  17. html vw选择器,使用vw、vh的使用教程
  18. python 计算灰度共生矩阵
  19. python编写语法解析器_SLR语法分析器 python实现
  20. 手游 自建服务器,英灵神殿自己搭建服务器怎么弄

热门文章

  1. 相机取相,如何给类似圆柱的侧面打光均匀
  2. 三人行新解:前辈、平辈和后辈
  3. H264码流中NALU sps pps IDR帧的理解
  4. html5 footer header,W3C HTML5标准阅读笔记 – header、footer、main、address
  5. NPOI导出Word并插入表格和图片
  6. QNX Hypervisor —— 基于优先级的调度
  7. 我是如何一步步获取房东的WiFi后台管理密码的【社工思路】
  8. ERROR: configuration failed for package ‘stringi’
  9. LeetCode-Hot100-两数相加
  10. vue基于file-saver处理二进制文件流,导出文件