我有一项服务,我希望允许用户在安装时指定要使用的持久性引擎,即基于文件的、MongoDB 或 Redis,我正在寻找一些 npm 魔法,您只需要下载必要的模块(分别为无、mongodb 或 redis)。
这可能吗?除了在 package.json 中定义依赖项和 devDependencies 之外,我找不到任何选项,这不适合这个。
另请注意,虽然 mongodb 和 redis 模块可能相对较小,但请考虑另一种情况,您可能需要 Java 来进行 RMI 通信。
谢谢!
最佳答案
您可能想使用安装后脚本,然后安装它们。
您可以使用 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
.
关于node.js - 我可以在 npm package.json 中指定可选的模块依赖项吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27722576/