我想在节点应用程序启动后,使用节点应用程序以编程方式npm install一个包。理想情况下,这个包不会将文件放到我的node_modules文件夹中,而是在运行后将其自身丢弃。
npm supports programmatic installs,但是它似乎实际上是将模块保存到node_modules中。此外,让整个npm (一个大模块)成为这类差劲的需求。但是,当我查看源代码时,npm install部分使用了大量的模块,不容易重现。
有没有其他任何人知道的模块可以满足这个要求?
发布于 2015-06-26 12:02:38
在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函数,它可以在以后清理临时目录。
https://stackoverflow.com/questions/31064124
复制相似问题