我可以在npm package.json中指定可选的模块依赖关系吗?

我有一个服务,我希望允许用户在安装时指定使用哪个持久性引擎,即基于文件,MongoDB或Redis,我正在寻找一些npm魔术,你只需要下载必要的模块(无,mongodb或redis)。

这可能吗? 除了在package.json中定义依赖关系和devDependencies之外,我找不到任何其他选项,这不适合于此。

还要注意,尽pipemongodb和redis模块可能相对较小,但考虑另一种情况,您可以select使用Java进行RMI通信。

谢谢!

您可能想要使用安装后脚本,然后安装它们。

您可以通过编程方式使用npm模块来安装。

所以,你可能会这样做:

 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'); }); }); 

现在,我从来没有做过这样的事情,所以我build议你看编程npm install文件,也load