我有一个服务,我希望在安装时允许用户指定使用哪个持久性引擎,即基于文件,MongoDB或Redis,并且我正在寻找一些你只下载的npm魔法必要的模块(分别为none,mongodb或redis)。
这可能吗?除了在package.json中定义依赖项和devDependencies之外,我找不到任何其他选项,并且这不适用于此。
另请注意,虽然mongodb和redis模块可能相对较小,但请考虑另一种情况,您可以选择使用Java进行RMI通信。
谢谢!
答案 0 :(得分:2)
您可能希望使用安装后脚本,然后再安装它们。
您可以使用npm
module以编程方式安装内容。
所以,你可能会这样做:
var npm = require('npm'); // make sure npm is in your package.json!
npm.load({/* some object properties, if needed */}, function(err) {
if (err) {return handleError(err)}
if (usingMongoDB) {
npm.commands.install(['mongodb'], function(err){
if (err) {return handleError(err)}
console.log('mongodb successfully installed');
});
});
现在,我从未做过类似的事情,所以我建议您查看程序化npm install
以及load
的文档。