我希望能够在Node应用程序启动后使用编程方式npm install
安装一个包。理想情况下,这个包不会放到我的node_modules
文件夹中,而是会在运行时自动删除。
npm
支持编程方式安装,但似乎实际上将模块保存到了node_modules
中。此外,让整个npm
(一个庞大的模块)成为这种要求的必须条件有些困难。然而,当我查看源代码时,npm install
部分使用了大量的模块,并且无法轻松地复制。
是否有其他模块符合此要求?
我希望能够在Node应用程序启动后使用编程方式npm install
安装一个包。理想情况下,这个包不会放到我的node_modules
文件夹中,而是会在运行时自动删除。
npm
支持编程方式安装,但似乎实际上将模块保存到了node_modules
中。此外,让整个npm
(一个庞大的模块)成为这种要求的必须条件有些困难。然而,当我查看源代码时,npm install
部分使用了大量的模块,并且无法轻松地复制。
是否有其他模块符合此要求?
通过NPM,您可以将其安装到路径中,并且有这个巧妙的temp
模块可以帮助在跨平台时完成此操作:
var temp = require('temp')
, npm = require('npm')
;
function use(module, cb) {
npm.load({}, function(){
npm.commands.install(temp.dir, [module], function(err, data){
var dir = data[0][1];
var mod = require(__dirname + '/' + dir);
cb(mod);
});
})
}
use('lodash', function(_){
// ... do things.
});
temp
有一个clean
函数,可以稍后清理临时目录。var npm = require("npm");
不再可行。 - Sorin GFS