Javascript Node.js模块的动态安装和加载
我正在使用NPM中的另一个Node.js模块B开发Node.js模块a。NPM上发布了模块B的新版本。我希望我的模块A动态更新到模块B的最新版本(模块A始终取决于模块B的最新版本)。此外,导入模块的所有引用也应动态更新 我考虑过,如果某个模块已经过时,可以通过编程方式使用NPM来安装该模块的最新可用版本。是否有更好的解决方案动态执行此操作 另外,如何强制更新通过require导入的模块引用Javascript Node.js模块的动态安装和加载,javascript,node.js,performance,module,npm,Javascript,Node.js,Performance,Module,Npm,我正在使用NPM中的另一个Node.js模块B开发Node.js模块a。NPM上发布了模块B的新版本。我希望我的模块A动态更新到模块B的最新版本(模块A始终取决于模块B的最新版本)。此外,导入模块的所有引用也应动态更新 我考虑过,如果某个模块已经过时,可以通过编程方式使用NPM来安装该模块的最新可用版本。是否有更好的解决方案动态执行此操作 另外,如何强制更新通过require导入的模块引用 谢谢 至少对于问题的第一部分(模块A始终使用模块B的最新版本),您可以始终在package.json中使用
谢谢 至少对于问题的第一部分(模块A始终使用模块B的最新版本),您可以始终在
package.json
中使用以下命令指定依赖项:
这将允许您始终npm更新到最新版本。(然而,这可能会导致在npm使用时引入破坏模块向后兼容性的更改。)
至于自动运行npm update
,我不得不问-为什么这是必要的?对模块用户有什么好处?您至少应该“策划”对依赖项的更新,以确保不会引入破坏性的更改。如果您为更新依赖项设置了全自动管道(例如,从npm update
ing dependencies到git tag
ing new versions到npm version
ing这些新版本到npm publish
ing这些新版本),如果这些步骤中的任何一个破坏了与模块用户代码的兼容性,那么您就有点让模块用户束手无策了
(另外,如果这种自动依赖项更新不会破坏您的模块,那么您的模块添加了什么?它是否对依赖项做了任何非平凡的事情?)
这可能看起来很麻烦,但是用一些技巧和意图来更新依赖项是一种更好的做法 谢谢@wisew的指点!“npm更新”需要自动进行的原因是1。模块B也将由me 2发布。模块B的更新将是关键的错误修复。其想法是将生态系统中频繁更新(带有修复)的部分抽象为一个单独的模块,所有其他模块都将对其具有“依赖性”。模块B将在发布给NPM之前进行策划。我希望模块A的消费者能够在没有他们干预的情况下获得模块B的策划版本,以及关键的修复。
{
"dependencies": {
"moduleB": "*"
}
}