如何在package.json中保存所有已安装的节点模块?

时间:2016-10-14 04:55:46

标签: javascript node.js npm node-modules package.json

如何在不重新安装的情况下保存package.json中所有已安装的节点模块?

我有类似npm init --yes的内容,但我不确定是否有效。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我认为没有办法用一些内置模块来获取这些东西

但您可以编写自己的代码来获取该信息并在您自己的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

获取包列表和版本