欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

簡單談?wù)勱P(guān)于 npm 5.0 的新坑

 更新時(shí)間:2017年06月08日 10:11:52   作者:老雷  
最近使用到了npm5.0,第一次使用確實(shí)被驚艷了,但隨著而來的是一些坑,下面這篇文章主要給大家簡單介紹了關(guān)于npm 5的一些新坑,需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。

前言

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

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

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

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

以下是 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="
 }
 }}

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

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

網(wǎng)上已經(jīng)有很多人反應(yīng)這個問題了: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 文檔關(guān)于 package-locks 的說明

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

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

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Nodejs關(guān)于gzip/deflate壓縮詳解

    Nodejs關(guān)于gzip/deflate壓縮詳解

    本文主要向大家介紹了nodejs中關(guān)于gzip/deflate壓縮的2種方法,分別是管道壓縮和非管道壓縮,十分詳細(xì),并附帶示例,這里推薦給大家參考下。
    2015-03-03
  • NodeJS落地WebSocket實(shí)踐前端架構(gòu)師破局技術(shù)

    NodeJS落地WebSocket實(shí)踐前端架構(gòu)師破局技術(shù)

    這篇文章主要為大家介紹了NodeJS落地WebSocket實(shí)踐前端架構(gòu)師破局技術(shù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Nodejs封裝類似express框架的路由實(shí)例詳解

    Nodejs封裝類似express框架的路由實(shí)例詳解

    在本篇文章里小編給大家整理的是關(guān)于Nodejs封裝類似express框架的路由實(shí)例內(nèi)容,有需要的朋友們學(xué)習(xí)下。
    2020-01-01
  • Nodejs使用exceljs實(shí)現(xiàn)excel導(dǎo)入導(dǎo)出

    Nodejs使用exceljs實(shí)現(xiàn)excel導(dǎo)入導(dǎo)出

    在日常開發(fā)中,我們常需在后臺管理系統(tǒng)中實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入與導(dǎo)出功能,以便與?Excel?文件進(jìn)行交互,本文將使用使用exceljs實(shí)現(xiàn)excel導(dǎo)入導(dǎo)出功能,需要的可以參考下
    2024-03-03
  • npm install安裝模塊-save和-save-dev命令的區(qū)別

    npm install安裝模塊-save和-save-dev命令的區(qū)別

    這篇文章介紹了npm install安裝模塊-save和-save-dev命令的區(qū)別,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • node.js通過Sequelize 連接MySQL的方法

    node.js通過Sequelize 連接MySQL的方法

    這篇文章主要介紹了node.js通過Sequelize 連接MySQL的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Nodejs+express+html5 實(shí)現(xiàn)拖拽上傳

    Nodejs+express+html5 實(shí)現(xiàn)拖拽上傳

    文件上傳是一個比較常見的功能,傳統(tǒng)的選擇方式的上傳比較麻煩,需要先點(diǎn)擊上傳按鈕,然后再找到文件的路徑,然后上傳。給用戶體驗(yàn)帶來很大問題。html5開始支持拖拽上傳的需要的api。nodejs也是一個最近越來越流行的技術(shù),這也是自己第一次接觸nodejs。
    2014-08-08
  • node微信小程序登錄實(shí)現(xiàn)登錄的項(xiàng)目實(shí)踐

    node微信小程序登錄實(shí)現(xiàn)登錄的項(xiàng)目實(shí)踐

    登陸流程是指小程序用戶進(jìn)行授權(quán)登陸,即獲取用戶的微信賬號等信息本文就來介紹一下node微信小程序登錄實(shí)現(xiàn)登錄,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • 基于模板引擎Jade的應(yīng)用(詳解)

    基于模板引擎Jade的應(yīng)用(詳解)

    下面小編就為大家分享一篇基于模板引擎Jade的應(yīng)用詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • 深入分析node.js的異步API和其局限性

    深入分析node.js的異步API和其局限性

    這篇文章首先給大家介紹了為什么要用異步API,其次node.js異步api在使用過程有一些什么樣的限制呢,對于這個問題我們下面來看看這篇關(guān)于node.js異步的介紹分析吧,有需要的可以參考借鑒。
    2016-09-09

最新評論