maven Npm package.json继承

5ssjco0h  于 2023-10-17  发布在  Maven
关注(0)|答案(4)|浏览(149)

npm中是否有类似于Maven中的父pom的机制?我们的目标是为脚本、依赖项和开发人员提供一个通用的基础配置。不是基于像约曼这样的模板,而是基于一个父版本。因此,任何更改父版本的项目都会自动获得此父版本中的更改。

np8igboo

np8igboo1#

目前还没有内置的npm机制来实现这一点,将来也不太可能。
请参阅讨论here和这条评论特别。

ffscu2ro

ffscu2ro2#

我们构建了https://github.com/Cosium/dry-dry
它的唯一目的是添加package.json继承能力。
它将所有命令都委托给npm。
文档仍处于早期阶段,但它可以工作。

pxiryf3j

pxiryf3j3#

Yarn有这个特性(workspaces),我推荐使用yarn。

bq8i3lrv

bq8i3lrv4#

另一个要考虑的解决方案是发布一个软件包A(例如,在私有注册表中),它“捆绑”您希望使用的各种软件包的版本。将它们列为A包中的peerDependencies。然后,要求A作为项目中的依赖项。包A的任何消费者只需更新包A以拉入那些“捆绑”依赖项的新版本。这种方法需要考虑两个并发症:

  1. peerDependencies应该有多具体?如果你使用松散的特异性,那么A的每个消费者都可能有不同的版本。如果您希望允许用户在他们认为合适的时候进行升级,或者在需要时协商特定的版本,这是非常有用的。
    1.能够对A的依赖项进行自动完成,例如在VSCode中,需要额外的工作,请参阅https://github.com/microsoft/TypeScript/issues/39911#issuecomment-1179167693。默认情况下,只有使用A的项目中的直接依赖项才会自动完成; A的依赖项不会自动完成。

相关问题