带有纱线工作区的通用依赖库版本

问题描述

假设我有一个在不同工作空间之间共享的外部NPM lib依赖项,是否可以为所有从属工作空间设置一个版本?如果此依赖项是对等项或依赖项,怎么办?

例如

// external-lib-dep in npm

//package1's package.json
...
"dependencies": {
   "external-lib-dep": "^1.0.0"
}
...

// package2's package.json
...
"dependencies": {
   "external-lib-dep": "^1.2.0"
}
...

// package3's package.json
...
"dependencies": {
   "very-different-external-lib-dep": "^1.2.0"
}
...

是否可以以某种方式“共享” deps的版本,而不是一遍又一遍地复制它? (就像maven的父pom中的dependencyManagement一样。)

如果monorepo拥有某个公司的所有服务的“公共”库,该怎么办?当我在服务中使用其中一个库时,它们是否可以解决问题?

解决方法

可以以一种特定的方式在工作空间之间共享依赖版本。

您的工作区应在其external-lib-dep中声明peerDependencies。在您的monorepo根package.json中,您应该在external-lib-dep中声明dependencies。这样,您的工作空间将从根工作空间“继承” external-lib-dep版本。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...