<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          npm v7有哪些新功能?

          共 2804字,需瀏覽 6分鐘

           ·

          2020-12-25 23:08

          來源:https://blog.logrocket.com/whats-new-in-npm-v7/

          作者:Joel Olawanle

          2020年10月13日是npm CLI團隊的快樂星期二,經(jīng)過幾個月的努力,npm CLI團隊正式發(fā)布了 [email protected]
          npm是JavaScript的程序包管理器,它是Node.js(基于Chrome的V8 JavaScript引擎構(gòu)建的異步事件驅(qū)動的JavaScript運行時)的默認(rèn)程序包管理器。
          這個新版本引入了一些npm CLI用戶群高度要求的功能。這些特性包括工作空間(Workspaces)自動安裝同級依賴項的能力,以及我將在本文中強調(diào)的其他一些特性。
          要開始使用 npm v7.0.0,請在終端中運行 npm i -g npm@7
          [email protected] 仍然是一個非常新的東西,所以它不會破壞使用npm的數(shù)百萬工作流,特別是在生產(chǎn)中。
          因此,npm不會被標(biāo)記為 latest;你的工作流默認(rèn)不會得到npm v7.0.0,除非你通過運行 npm install -g npm@7 或安裝Node.js 15來選擇,Node.js 15是最近在 [email protected] 發(fā)布后出現(xiàn)的。

          有什么新東西?

          npm 7有3個令人興奮且期待已久的重要功能。

          工作空間

          這個功能已經(jīng)被社區(qū)要求了很久。工作空間是npm CLI中的一組功能,它支持在一個頂級的根包中管理多個包。Yarn和Pnpm以相同的名稱實現(xiàn)類似的功能,這一點一直存在。他們選擇重用它是為了簡化,以使更大的社區(qū)受益。
          在npm cli中,有2個主要的實現(xiàn)或變化需要你去實施,以訪問能夠更好地管理嵌套包的特性集。
          • 讓npm cli工作空間感知。
          • 在npm工作空間設(shè)置中,用戶希望能夠從頂層工作空間安裝所有嵌套的包并執(zhí)行相關(guān)的生命周期腳本。它還應(yīng)該意識到相互依賴的工作空間,并適當(dāng)?shù)剡M行symlink(文件之間的符號鏈接)。

          自動安裝同級項依賴(peer dependencies)

          在之前的版本(npm v6)中,npm默認(rèn)不安裝同級項依賴,取而代之的是,各個消費者不得不自己安裝和管理同級項依賴關(guān)系。用戶會收到一個警告,這往往被誤解為一個問題。這就會被報告給軟件包維護者,而維護者有時會省略同級項依賴關(guān)系,將其視為可選的依賴關(guān)系。這并沒有對其版本范圍或有效性進行任何檢查。
          此外,由于npm安裝程序不支持同級依賴關(guān)系,所以當(dāng)不支持同級依賴關(guān)系存在時,它設(shè)計的樹會出現(xiàn)問題。
          這個新版本(npm v7.0.0)使得自動安裝同級依賴項變得很容易,而在此之前,開發(fā)人員需要手動管理和安裝此類依賴項。
          根據(jù)npm CLI團隊的說法,新的peer依賴算法確保在node_modules樹中peer-dependent的位置或上面找到有效匹配的peer依賴。
          該算法解決了之前版本中與同級依賴相關(guān)的所有問題,使同級依賴成為一個一流的概念,并滿足了包樹有效性的要求。

          Package-lock v2和對yarn.lock的支持

          新的package-lock格式將釋放出進行確定性可重復(fù)構(gòu)建的能力,并包含了npm完全構(gòu)建包樹所需的一切。
          現(xiàn)在,CLI還可以將 yarn.lock 用作軟件包元數(shù)據(jù)和解決方案指南的來源。

          npm 7.0.0中的重大更改

          除了這3個主要的新功能外,在這個版本中還有一些突破性的變化,開發(fā)者應(yīng)該知道,因為我們都知道,為了提高整體的開發(fā)者體驗,一些突破性的變化是必要的。
          • 自動安裝同級依賴關(guān)系的能力有可能破壞某些工作流程。
          • npm現(xiàn)在使用了 package.export 字段,使得不再 require() npm的內(nèi)部模塊。
          • npx 已經(jīng)完全重寫了,現(xiàn)在可以使用 npm exec 命令了
          • npm audit 的輸出在人可讀和 --json 輸出方式上都有所改變。它不再使用表格來顯示漏洞,vuln count也不再是將樹上的每一個節(jié)點相乘。
          • 現(xiàn)在默認(rèn)情況下,npm ls 僅顯示頂級軟件包
          如果你想得到和 npm6 一樣的輸出,你現(xiàn)在可以使用“all”選項(即 npm ls --all)

          立即獲取更新

          你今天就可以開始使用這個更新,運行:

          npm install -g npm@7
          像往常一樣,你可以使用 npm -vnpm --version 來確認(rèn)版本。
          下面是一個例子,說明了 npm v7 如何幫助我們自動安裝同級的依賴關(guān)系。
          讓我們安裝一個與React有同級關(guān)系的依賴,看看它是如何安裝的。
          首先,讓我們通過在CLI中運行 npm ls react 來確認(rèn)我們沒有依賴關(guān)系。
          然后,我們現(xiàn)在可以繼續(xù)安裝我們選擇的任何依賴關(guān)系,以便看到這個新功能的實現(xiàn)。
          我想指出的另一個示例是 npx 已被重建。
          以前,npx 是它自己的軟件包,即使它是在安裝npm時安裝的。現(xiàn)在,它不再是一個單獨的包了。它是一種內(nèi)置在npm中的東西(盡管人們并不真正關(guān)心它的工作)。當(dāng)你試圖安裝某些東西時,它會提示你,以便檢查你是否真的想繼續(xù)安裝。
          以前,你寫什么命令,它就會直接去安裝,不會提示你。
          有趣的是,你可能不喜歡它提示你回答問題的整個想法。所以,你可以利用 -y 標(biāo)志。

          總結(jié)

          這是自2020年4月npm作為一家公司被GitHub收購后,發(fā)布的第一個版本npm CLI。所以官方的發(fā)布信息是在GitHub的博客上。
          在這篇文章中,我解釋了npm v7的新功能,以及如何開始使用最新版本的npm。
          我鼓勵大家對這些新功能感興趣的人開始使用npm v7。

          粉絲福利

          147期留言+在看幸運用戶:暫無

          臨走前留下,今天的福利

          • 福利1:《教你玩轉(zhuǎn)手機攝影,隨手拍出好照片》獲取資源請在公眾號對話框中回復(fù)關(guān)鍵字:FL04,如果沒有關(guān)注請掃下面的二維碼
          • 福利2:在看+留言我隨機抽取一位認(rèn)真留言的小伙伴,給他發(fā)一個紅包獎勵

          最近文章

          -?END -

          點贊 + 在看 + 留言,下一個幸運兒就是你!
          走心的分享更容易被抽中~

          開獎時間?下期文末

          瀏覽 96
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天天噜天天操 | 亚洲淫色网站 | 亚洲无码专区区免费 | 中文字幕亚洲第一页在线 | 免费看黄 片 |