【问题标题】:How can I save all the installed node modules in package.json?如何将所有已安装的节点模块保存在 package.json 中?
【发布时间】:2017-02-23 09:57:01
【问题描述】:

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

我有类似 npm init --yes 的东西,但我不太确定这是否有效。

感谢您的帮助!

【问题讨论】:

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


【解决方案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获取包列表和版本的命令

【讨论】:

  • 此解决方案是一种很好的解决方法,因为没有可用的直接方法。但这可能是有问题的,因为现在 npm(较新版本 >= v3)会创建平面树,因此此代码会生成比实际更大的依赖树。
  • 你也可以使用 npm list --depth=0 命令来获取包列表和版本,使用 shelljschild_process spawn 而不是文件夹和文件遍历
  • 同意,我们仍然需要做一些事情来完成它。但是您的观点是正确的,我正在更新我的答案
  • 但是我想做的是通过npm命令行编写所有没有写在package.json中的节点模块......这个解决方案没有回答我的问题,但是谢谢。跨度>
猜你喜欢
  • 1970-01-01
  • 2020-01-24
  • 2020-06-19
  • 2021-07-25
  • 2019-09-03
  • 1970-01-01
  • 2016-12-24
  • 2017-10-19
  • 1970-01-01
相关资源
最近更新 更多