node.js - 我可以在 npm package.json 中指定可选的模块依赖项吗?

标签 node.js npm

我有一项服务,我希望允许用户在安装时指定要使用的持久性引擎,即基于文件的、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/

相关文章:

node.js - Sinon 函数 stub : How to call "own" function inside module

node.js - mongodb 原生的 promise

javascript - Nodejs 使用 body-parser 按下按钮时删除行

javascript - Node.js 的同步拼写检查

node.js - Yeoman Webapp 安装在 Windows 7 上失败(以及任何其他生成器)

javascript - https post 在 javascript 中类似于带有 header 和参数的curl -d 和 "request"模块nodejs npm

node.js - 在 Electron 中,fs 操作是在 ipcRenderer 或 ipcMain 中完成的

javascript - 根据文件中的需要列出文件中的依赖项

node.js - env 中的 RSA key 导致错误

node.js - 尝试在 Mac 上安装 npm 时出现奇怪的错误