【发布时间】:2017-02-23 09:57:01
【问题描述】:
如何在不重新安装的情况下将所有已安装的节点模块保存在 package.json 中?
我有类似 npm init --yes 的东西,但我不太确定这是否有效。
感谢您的帮助!
【问题讨论】:
标签: javascript node.js npm node-modules package.json
如何在不重新安装的情况下将所有已安装的节点模块保存在 package.json 中?
我有类似 npm init --yes 的东西,但我不太确定这是否有效。
感谢您的帮助!
【问题讨论】:
标签: javascript node.js npm node-modules package.json
我认为没有办法通过一些内置模块获得这些东西
但是您可以编写自己的代码来获取该信息并在您自己的package.json 文件中更新
var fs = require("fs");
function getPackageInfo() {
fs.readdir("./node_modules", function(err, module) {
if (err) {
console.log(err);
return;
}
console.log(module)
module.forEach(function(dir) {
if (dir.indexOf(".") !== 0) {
var packageFile = "./node_modules/" + dir + "/package.json";
if (fs.existsSync(packageFile)) {
fs.readFile(packageFile, function(err, data) {
if (err) {
console.log(err);
} else {
var json = JSON.parse(data);
console.log('"' + json.name + '": "' + json.version + '",');
}
});
}
}
});
});
}
getPackageInfo();
输出
"setprototypeof": "1.0.1",
"raw-body": "2.1.7",
"source-map": "0.4.4",
"statuses": "1.3.0",
"transformers": "2.1.0",
"type-is": "1.6.13",
"methods": "1.1.2",
"uglify-js": "2.7.3",
"uglify-to-browserify": "1.0.2",
"utils-merge": "1.0.0",
"unpipe": "1.0.0",
"vary": "1.0.1",
"void-elements": "2.0.1",
"with": "4.0.3",
"window-size": "0.1.0",
"wordwrap": "0.0.3",
"yargs": "3.10.0",
"mime-db": "1.24.0",
...................
..................
..................
.................
你也可以使用
npm list --depth=0
child_process spawn获取包列表和版本的命令
【讨论】:
npm list --depth=0 命令来获取包列表和版本,使用 shelljs 或 child_process spawn 而不是文件夹和文件遍历