npm中是否有类似于Maven中的父pom的机制?我们的目标是为脚本、依赖项和开发人员提供一个通用的基础配置。不是基于像约曼这样的模板,而是基于一个父版本。因此,任何更改父版本的项目都会自动获得此父版本中的更改。
np8igboo1#
目前还没有内置的npm机制来实现这一点,将来也不太可能。请参阅讨论here和这条评论特别。
ffscu2ro2#
我们构建了https://github.com/Cosium/dry-dry。它的唯一目的是添加package.json继承能力。它将所有命令都委托给npm。文档仍处于早期阶段,但它可以工作。
pxiryf3j3#
Yarn有这个特性(workspaces),我推荐使用yarn。
bq8i3lrv4#
另一个要考虑的解决方案是发布一个软件包A(例如,在私有注册表中),它“捆绑”您希望使用的各种软件包的版本。将它们列为A包中的peerDependencies。然后,要求A作为项目中的依赖项。包A的任何消费者只需更新包A以拉入那些“捆绑”依赖项的新版本。这种方法需要考虑两个并发症:
peerDependencies
4条答案
按热度按时间np8igboo1#
目前还没有内置的npm机制来实现这一点,将来也不太可能。
请参阅讨论here和这条评论特别。
ffscu2ro2#
我们构建了https://github.com/Cosium/dry-dry。
它的唯一目的是添加package.json继承能力。
它将所有命令都委托给npm。
文档仍处于早期阶段,但它可以工作。
pxiryf3j3#
Yarn有这个特性(workspaces),我推荐使用yarn。
bq8i3lrv4#
另一个要考虑的解决方案是发布一个软件包A(例如,在私有注册表中),它“捆绑”您希望使用的各种软件包的版本。将它们列为A包中的
peerDependencies
。然后,要求A作为项目中的依赖项。包A的任何消费者只需更新包A以拉入那些“捆绑”依赖项的新版本。这种方法需要考虑两个并发症:peerDependencies
应该有多具体?如果你使用松散的特异性,那么A的每个消费者都可能有不同的版本。如果您希望允许用户在他们认为合适的时候进行升级,或者在需要时协商特定的版本,这是非常有用的。1.能够对A的依赖项进行自动完成,例如在VSCode中,需要额外的工作,请参阅https://github.com/microsoft/TypeScript/issues/39911#issuecomment-1179167693。默认情况下,只有使用A的项目中的直接依赖项才会自动完成; A的依赖项不会自动完成。