2016-09-24 46 views

回答

5

您可以通過致電npm init將所有未安裝的軟件包與--save一起添加到您的package.json中。它會將依賴關係追加到現有的依賴項上。您的文件中沒有設置應該丟失。仍然不要忘記備份文件100%安全!

如果依賴沒有被附加,它可以發生,只是合併失敗:

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

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

  3. 合併將您新創建的package.json的依賴關係手動添加到舊的。恢復您的合併package.json

+0

不會取代我的項目文件? –

+1

您的項目文件和node_modules未被觸及。這都是關於package.json的 –

1

有人已經爲此寫了一個腳本。 轉到下面的鏈接

stackoverflow link

這裏是完整的代碼 運行這段代碼項目文件夾

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": "" 
} 
相關問題