2016-02-29 52 views
3

它没有很好的记录,但是您可以使用npm作为Node.js模块并在代码中调用命令。以编程方式安装npm软件包,提供--save-dev标志

我想捕获用户输入需要哪些软件包并以这种方式进行安装,并使用--save-dev标志将它们保存到软件包中。我试图无法在代码中启动并运行它,但安装却无法找到将其保存到程序包文件的方法。

这是否可能,或者是否会以另一种方式完成。欢迎和赞赏备选方法。

var npm = require("npm") 

npm.load({}, function (er) { 
    if (er) return handlError(er) 

    npm.commands.install(["titlecase"], function (err, data) { 
    if (err) return console.error(err) 
    }) 

}) 

回答

6

这是可能的,标志需要传递到npm.load()

var npm = require('npm'); 

npm.load({ 'save-dev': true }, function (err) { 
    if (err) console.log(err); 

    npm.commands.install(['lodash'], function (err, data) { 
     if (err) return console.error(err) 
    }); 
}); 

你有标志的列表及其here类型。