亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

簡單談談關于 npm 5.0 的新坑

發布時間:2020-08-19 15:22:08 來源:腳本之家 閱讀:105 作者:老雷 欄目:web開發

前言

前幾天升級了 Node.js v8.0 后,自帶的 npm 也升級到了5.0,第一次使用的時候確實驚艷到了:原本重新安裝一次模塊要十幾秒到事情,現在一秒多就搞定了。

先不要激動,現在我來大概講一下 npm 5 的一些大的變化:

  • 使用npm install xxx命令安裝模塊時,不再需要--save選項,會自動將模塊依賴信息保存到 package.json 文件;
  • 安裝模塊操作(改變 node_modules 文件夾內容)會生成或更新 package-lock.json 文件
  • 發布的模塊不會包含 package-lock.json 文件
  • 如果手動修改了 package.json 文件中已有模塊的版本,直接執行npm install不會安裝新指定的版本,只能通過npm install xxx@yy更新

重新安裝模塊之所以快,是因為 package-lock.json 文件中已經記錄了整個 node_modules 文件夾的樹狀結構,甚至連模塊的下載地址都記錄了,再重新安裝的時候只需要直接下載文件即可(這樣看起來 facebook 的 yarn 好像沒有啥優勢了)。

以下是 package-lock.json 文件的例子:

{
 "name": "test_pkg_lock",
 "version": "1.0.0",
 "lockfileVersion": 1,
 "dependencies": {
 "commander": {
 "version": "2.9.0",
 "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
 "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q="
 },
 "cssfilter": {
 "version": "0.0.8",
 "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.8.tgz",
 "integrity": "sha1-ZWTKzLqKdt2bS5IGaLn7f9pQ5Uw="
 },
 "graceful-readlink": {
 "version": "1.0.1",
 "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
 "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
 },
 "xss": {
 "version": "0.2.18",
 "resolved": "https://registry.npmjs.org/xss/-/xss-0.2.18.tgz",
 "integrity": "sha1-bfX7XKKL3FHnhiT/Y/GeE+vXO6s="
 }
 }}

帶來速度的同時,npm 也挖了個大大的坑:

以后直接改 package.json 文件相應模塊的版本號,再執行npm install不會更新了(好可怕),你只能手動用npm install xxx@yy指定版本號來安裝,然后它會自動更新 package-lock.json 文件。直接執行npm install時,如果不存在 package-lock.json 文件,它會根據安裝模塊后的 node_modules 目錄結構來創建;如果已經存在 package-lock.json 文件,則它只會根據 package-lock.json 文件指定的結構來下載模塊,并不會理會 package.json 文件。

網上已經有很多人反應這個問題了:GitHub 上的 issue:package-lock.json file not updated after package.json file is changed

鏈接:https://github.com/npm/npm/issues/16866

clean project with some deps in package.json.you run npm imodules are installed and package-lock.json file is created.say you update module A in package.json file.you run npm i. I would expect this updates the package-lock.json file but it doesn't. which results in module A not being updated.

文章:Understanding lock files in NPM 5

鏈接:http://jpospisil.com/2017/06/02/understanding-lock-files-in-npm-5.html

這里是 npm 文檔關于 package-locks 的說明

鏈接:https://docs.npmjs.com/files/package-locks

目前還不知道關于 package-lock.json 的最佳實踐,果斷切換回 Node v6.x,等別人把坑填了再上。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吴旗县| 随州市| 精河县| 陆河县| 沙雅县| 和硕县| 年辖:市辖区| 九龙坡区| 千阳县| 南雄市| 固阳县| 佛冈县| 高阳县| 东乡县| 水富县| 呼伦贝尔市| 峨眉山市| 龙南县| 昌宁县| 宁波市| 资源县| 邵阳市| 天峻县| 治多县| 盐池县| 浦县| 镇江市| 南城县| 长海县| 印江| 泾源县| 茂名市| 商水县| 呼和浩特市| 阿鲁科尔沁旗| 京山县| 全南县| 晋宁县| 西华县| 夏河县| 桐庐县|