簡體   English   中英

如何將我通過npm安裝的所有依賴項保存到我的package.json文件中?

[英]How do I save all the dependencies I install through npm into my package.json file?

我為很多軟件包運行了npm install ,但是我忘了包含--save參數。 現在,當我嘗試在Heroku上部署時,我會因錯過某些依賴項而遇到錯誤。 我怎樣才能自動將這些依賴項添加到我的package.json文件而不進行npm install --save為每個?

您可以添加與安裝所有已安裝的軟件包--savepackage.json通過調用自動npm init 它會將依賴項附加到現有的依賴項。 您的文件中的任何設置都不應丟失。 仍然不要忘記將文件備份為100%安全!

如果尚未附加依賴項,則只會發生合並失敗:

  1. 備份現有package.json為了保持你在你的依賴關系package.json已經和所有的其他設置。 我們稍后需要這個文件。

  2. 刪除 package.json運行 npm init以創建一個新的package.json包括在dependencies沒有--save安裝的模塊。

  3. 將新創建的package.json的依賴項手動合並到舊的package.json 恢復合並的package.json

有人已經為此寫了一個腳本。 轉到以下鏈接

stackoverflow鏈接

這里是完整的代碼在您的項目文件夾中運行此代碼

  var fs = require("fs");

  function main() {
    fs.readdir("./node_modules", function (err, dirs) {
      if (err) {
        console.log(err);
        return;
      }
      dirs.forEach(function(dir){
        if (dir.indexOf(".") !== 0) {
          var packageJsonFile = "./node_modules/" + dir + "/package.json";
          if (fs.existsSync(packageJsonFile)) {
            fs.readFile(packageJsonFile, function (err, data) {
              if (err) {
                console.log(err);
              }
              else {
                var json = JSON.parse(data);
                console.log('"'+json.name+'": "' + json.version + '",');
              }
            });
          }
        }
      });

    });
  }
  main();

它將打印node_module文件夾中的所有依賴項,如下所示。

"ansi-regex": "2.0.0",
"ansi-styles": "2.2.1",
"asn1": "0.2.3",
"assert-plus": "0.2.0",
"asynckit": "0.4.0",
"aws-sign2": "0.6.0",
"bcrypt-pbkdf": "1.0.0",
"aws4": "1.4.1",
"bindings": "1.2.1",
"bl": "1.1.2",
"boom": "2.10.1",
"caseless": "0.11.0",
"chalk": "1.1.3",
"combined-stream": "1.0.5",
"core-util-is": "1.0.2",
"compress": "0.99.0",
"commander": "2.9.0",
"cryptiles": "2.0.5",
"delayed-stream": "1.0.0",
"dashdash": "1.14.0",
"debug": "0.7.4",
"ecc-jsbn": "0.1.1",
"ejs": "2.3.4",
"escape-string-regexp": "1.0.5",

復制並粘貼在package.json json中,如下所示

{
  "name": "test",
  "version": "1.0.0",
  "main": "server.js",
  "dependencies": {
    //paste above printed data here
  },
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "description": ""
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM