我需要通过脚本使用 npm
更新。下面是我的代码:
var npm = require('npm');
npm.load(function () {
npm.commands.outdated({json: true}, function (err, data) {
//console.log(data);
npm.commands.update(function(err, d){
console.log(d);
});
});
});
当我运行此脚本时,模块会更新,但 package.json 中未指示新版本。
当我从命令行运行 npm update --save-dev
时,文件夹和 package.json 得到更新。
请建议如何通过脚本实现这一点。
如何通过代码使用 --save-dev
选项?
最佳答案
加载配置时需要指定{save: true}
选项:
npm.load({save: true}, function() {
// update code
});
编辑:
npm.load
命令的 'save-dev'
选项不起作用。这里有一个问题:https://github.com/npm/npm/issues/2369 .
解决方法是重新安装过时的模块:
npm.load({'save-dev': true}, function () {
npm.commands.outdated(function (err, rawOutdated) {
var outdated = rawOutdated.map(function (module) {
return module[1];
});
npm.commands.install(outdated, function(err, d) {
});
});
});
关于javascript - 如何以编程方式更新 Node 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37625951/