动态安装和加载节点.js模块
Dynamic installation and loading of Node.js module
我正在研究一个 Node.js 模块 A,
该模块 A 使用来自 NPM 的另一个 Node.js 模块 B。NPM 上发布了模块 B 的新版本。我希望我的模块 A 动态更新到模块 B 的最新版本(模块 A 始终取决于模块 B 的最新版本(。此外,导入模块的所有引用也应动态更新。
如果模块已过时,我考虑过以编程方式使用 NPM 来安装模块的最新可用版本。是否有更好的解决方案来动态执行此操作。
另外,如何强制更新通过 require 导入的模块引用?
谢谢!
至少
对于问题的第一部分(模块 A 始终使用模块 B 的最新版本(,您始终可以使用主要版本通配符指定package.json
中的依赖项:
{
"dependencies": {
"moduleB": "*"
}
}
然后,这将允许您始终npm update
到最新版本。(但是,这可能会引入更改,破坏模块中的向后兼容性,因为 npm 使用语义版本控制。
至于自动运行npm update
,我不得不问 - 为什么有必要这样做?您的模块对用户有什么好处?至少应该"策划"依赖项的更新,以确保不会引入重大更改。如果您确实设置了一个完全自动的管道来更新依赖项(例如,从npm update
依赖项到git tag
新版本,再到npm version
这些新版本以npm publish
这些新版本(,那么如果这些步骤中的任何一个破坏了与其代码的兼容性,您将模块的用户置于冷漠之中。
(此外,如果此自动依赖项更新永远不会破坏您的模块,那么您的模块添加了什么?它甚至对依赖项做了任何不平凡的事情吗?
这可能看起来很麻烦,但最好使用一些工艺和意图更新依赖项。有关详细信息,请参阅语义版本控制。
相关文章:
- 正在更改node.js模块变量
- react native中常见的js模块
- grunt serve:dist时找不到Angular.js模块,但grunt serve工作正常
- 如何为JS模块添加包含路径
- 在混合基本 URL 下动态加载 require.js 模块
- 如何在公共js模块中从web服务返回数据
- 找不到以前导入的 JS 模块
- 从 Node.js 模块中的缓冲区实例中逐行读取字符串
- 定义 Backbone.Layout 作为 need js 模块
- 在节点中.js“模块”始终是一个对象
- Node.js模块的异步初始化
- 不要自动嘲笑常见的js模块
- Node.js模块问题
- Node.JS-Q模块-承诺
- Node.js-模块导出静态变量
- 正在从node.js模块获取D9025警告和C1083错误..I'I’我没有主意
- 从node.js模块中向JSON添加原型函数
- 是否可以创建一个require.js模块,该模块在加载完成后自行决定
- 检查node.js模块是否可用
- 将JavaScript代码迁移到具有String.prototype扩展名的node.js模块