<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                >[success] # npm 查看一個包的版本信息 ~~~ 1.當想看npm 服務器上某個包的本時候 1.1.'npm view 查看的包名 versions' -- 這個會查到npm服務器上對應查詢包的版本所有信息 1.2.'npm view 查看的包名 version' -- 這種方式只能查看的最新的版本是哪一個也就是tag為latest 1.3.'npm info 查看的包名' -- 也可以查看j所有的版本,但是能查出更多的關于查詢包的信息; 2.'npm ls' -- 此命令將以樹狀結構將已安裝軟件包的所有版本及其依賴項打印到標準輸出。 'npm ls -g' -- 全局安裝依賴 3.'npm ls 查詢包' 查看本地安裝的查詢的包版本,本地沒有安裝返回empty的結果;加'-g' 查詢全局的 ~~~ >[info] ## 版本 ~~~ 1.包的版本管理各種版本符號 version 精確匹配版本 >version 必須大于某個版本 >=version 大于等于 <version 小于 <=versionversion 小于 ~version "約等于": ^version "兼容版本": version1 - version2 相當于 >=version1 <=version2. range1 || range2 范圍1和范圍2滿足任意一個都行 ~~~ >[danger] ##### 關于版本 1. **npm采用了semver規范作為依賴版本管理方案**。按照semver的約定,一個npm依賴包的版本格式一般為:'**主版本號.次版本號.修訂號(x.y.z)**' -- 小提示 js有一個專門校驗'semver' 庫 1.1. '**主版本號(也叫大版本,major version)**':大版本的改動很可能是一次顛覆性的改動,也就意味著可能存在與低版本不兼容的API或者用法(比如 vue 2 -> 3)。**做了不兼容的 API 修改(可能不兼容之前的版本)** 1.2. '**次版本號(也叫小版本,minor version)**':小版本的改動應當兼容同一個大版本內的API和用法,因此應該讓開發者無感。所以我們通常只說大版本號,很少會精確到小版本號。**做了向下兼容的功能性新增(新功能增加,但是兼容之前的版本)** 1.3. '**修訂號(也叫補丁,patch)**':一般用于修復bug或者很細微的變更,也需要保持向前兼容,**做了向下兼容的問題修正(沒有新功能,修復了之前版本的bug)** 1.4. '**先行版本**' 如下圖vue3發行版本為例**當某個版本改動比較大、并非穩定而且可能無法滿足預期的兼容性需求時,你可能要先發布一個先行版本**。**先行版本號**可以加到**主版本號.次版本號.修訂號的后面**,先加上一個連接號再加上一連串以句點分隔的標識符和版本編譯信息。'**內部版本(alpha)、公測版本(beta)、正式版本的候選版本rc: 即 Release candiate**' * **alpha(α)**:預覽版,或者叫內部測試版;一般不向外部發布,會有很多bug;一般只有測試人員使用。 * **beta(β)**:測試版,或者叫公開測試版;這個階段的版本會一直加入新的功能;在alpha版之后推出。 * **rc(release candidate)**:最終測試版本;可能成為最終產品的候選版本,如果未出現問題則可發布成為正式版本。 * **總結**:semver作為包版本管理規范。此規范規定軟件版本**由三個部分組成**: * 主版本號做了不兼容的重大變更 * 次版本號做了向下兼容的功能添加 * 補丁版本號做了向下兼容的bug修復 * **注意**: **如果大版本號是 0 的話,表示軟件處于開發初始階段**,一切都可能隨時被改變,可能每個小版本之間也會存在不兼容性。所以在選擇依賴時,**盡量避開大版本號是 0 的包**。 * vue3 版本發行 ![](https://img.kancloud.cn/fa/d8/fad85f091ee09e533b335b76c24833c4_556x454.png) >[danger] ##### 對于各個標志含義 ~~~ 1.~: 當安裝依賴時獲取到有新版本時,安裝到 x.y.z 中 z 的最新的版本。即保持主版本 號、次版本號不變的情況下,保持修訂號的最新版本。 2.^: 當安裝依賴時獲取到有新版本時,安裝到 x.y.z 中 y 和 z 都為最新版本。 即保持主版 本號不變的情況下,保持次版本號、修訂版本號為最新版本。 3.'*' 、"x" 或者 (空) 表示可以匹配任何版本。 注意: '當主版本號為 0 的情況,會被認為是一個不穩定版本' 主版本號和次版本號都為 0: ^0.0.z、~0.0.z 都被當作固定版本,安裝依賴時均不 會發生變化。 主版本號為 0: ^0.y.z 表現和 ~0.y.z 相同,只保持修訂號為最新版本。 ~~~ >[danger] ##### 舉幾個例子 ~~~ 1."signale": "1.4.0": 固定版本號 2."figlet": "*": 任意版本(>=0.0.0) 3."react": "16.x": 匹配主要版本(>=16.0.0 <17.0.0) 4."react": "16.3.x": 匹配主要版本和次要版本(>=16.3.0 <16.4.0) 5."^xxx": 最左側非0版本號不變,不小于xxx ^1.2.3 = >=1.2.3 <2.0.0 主版本號不變 ^0.1.2 = >=0.1.2 <0.2.0 主、次版本號不變 ^0.0.2 = = 0.0.2 主、次、補丁版本號都不變 6."~xxx":如果列出了次版本號,則次版本號不變,如果沒有列出次版本號,則主版本號不 變,均不小于xxx ~1.2.3 = >=1.2.3 <1.3.0 主、次版本號不變 ~1 = >=1.0.0 <2.0.0 主版本號不變 ~~~ >[danger] ##### 預發布版本 ~~~ 1.以包開發者的角度來考慮這個問題:假設當前線上版本是 "1.2.3",如果我作了一些改動 需要發布版本 "1.2.4",但我不想直接上線(因為使用 "~1.2.3" 或者 "^1.2.3" 的用戶都會 直接靜默更新),這就需要使用預發布功能。因此我可能會發布 "1.2.4-alpha.1" 或者 "1.2.4-beta.1" 等等。 ">1.2.4-alpha.1"表示接受 "1.2.4-alpha" 版本下所有大于 1 的預發布版本。因此 "1.2.4-alpha.7" 是符合要求的,但 "1.2.4-beta.1" 和 "1.2.5-alpha.2" 都不符合。此外如果是正式版本(不 帶預發布關鍵詞),只要版本號符合要求即可,不檢查預發布版本號,例如 "1.2.5", "1.3.0" 都是認可的。 "~1.2.4-alpha.1" 表示 ">=1.2.4-alpha.1 < 1.3.0"。這樣 "1.2.5", "1.2.4-alpha.2" 都符合條 件,而 "1.2.5-alpha.1", "1.3.0" 不符合。 "^1.2.4-alpha.1" 表示 ">=1.2.4-alpha.1 < 2.0.0"。這樣 "1.2.5", "1.2.4-alpha.2", "1.3.0" 符合條件,而 "1.2.5-alpha.1", "2.0.0" 不符合。 ~~~ >[danger] ##### 小知識點 1. **1.0.0 的版本號用于界定公共 API**。當你的軟件發布到了正式環境,或者有穩定的API時,就可以發布1.0.0版本了。所以,當你決定對外部發布一個正式版本的npm包時,把它的版本標為1.0.0。 >[danger] ##### 我想知道更多semver語義化 [semver語義化版本 2.0.0](https://semver.org/lang/zh-CN/)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看