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

我有类似npm init --yes的东西,但是我不确定是否可行。

谢谢您的帮助!

最佳答案

我认为无法通过一些内置模块来获得这些东西

但是您可以编写自己的代码以获取该信息并在自己的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获取软件包列表和版本的命令

09-25 16:36
查看更多