npm V 5.*.*版本帶來的 package-lock.json 坑!

webpack V3.9.1node

一、Node.js升級到 v8.9.1 後,自帶的 npm 也升級到了5.5.1,闡述下 npm 5 的一些大的變化:webpack

  • 安裝模塊時(即改變 node_modules文件夾內容)會生成 或 更新 package-lock.json 文件。
  • 發佈的模塊不會包含 package-lock.json 文件,若是手動修改了 package.json 文件中已有模塊的版本,直接執行npm install不會安裝新指定的版本,只能經過npm install xxx@yy更新。
注意:從新安裝模塊之因此快,是由於 package-lock.json 文件中已經記錄了整個 node_modules 文件夾的樹狀結構,甚至連模塊的下載地址都記錄了,再從新安裝的時候只須要直接下載文件便可(貌似和 facebook 的 yarn 好像沒啥區別)。

二、npm挖的大坑 !!!web

(1)、npm升級後帶來了一個很大的坑:之後直接改 package.json 文件相應模塊的版本號,再執行npm install不會更新了,你只能手動用npm install xxx@yy指定版本號來安裝,而後它會自動更新 package-lock.json 文件。npm

(2)、直接執行npm install時,若是不存在 package-lock.json 文件,它會根據安裝模塊後的 node_modules 目錄結構來建立;若是已經存在 package-lock.json 文件,則它只會根據 package-lock.json 文件指定的結構來下載模塊,並不會理會 package.json 文件。json

相關文章
相關標籤/搜索