最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

npm 語義版本控制詳解

 更新時間:2019年09月10日 09:10:58   作者:pr_云不欺  
這篇文章主要介紹了npm 語義版本控制詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

場景引入

開發(fā)時,經(jīng)常需要依賴一些模塊(包),我們進行了下載之后,便一直在該版本的模塊環(huán)境下進行開發(fā),但是線上的服務器(其他開發(fā)者)一般都是根據(jù)依賴來配置文件,重新下載各個模塊,但是保不齊某個模塊的版本已經(jīng)更新了,這時線上的包會更新到最新的版本,但你的代碼還是依據(jù)老版本來寫的,這時可能會產(chǎn)生一些不知名的 Bug。

為了保持 JavaScript 生態(tài)系統(tǒng)的健康,可靠和安全,npm 軟件包進行重大更新時,建議在 package.json 文件中發(fā)布帶有更新版本號的軟件包的新版本,文件遵循語義版本規(guī)范。

遵循語義版本規(guī)范可以幫助依賴代碼的其他開發(fā)人員了解給定版本中的更改范圍,并在必要時調(diào)整自己的代碼。

關于語義版本控制

為了幫助依賴你的代碼的開發(fā)人員,建議在 1.0.0 開始包版本并按如下方式遞增。npm 包的版本號的格式 x.y.z ,版本好的格式遵循 semver 2.0 規(guī)范。

代碼狀態(tài) 階段 規(guī)則 示例版本
首發(fā) 新產(chǎn)品
New product
從1.0.0開始 1.0.0
向后兼容的錯誤修復 補丁發(fā)布
Patch release
第三位數(shù)增加 1.0.1
向后兼容的新功能 次要發(fā)布
Minor release
中間數(shù)字增加
并將最后一個數(shù)字重置為零
1.1.0
破壞向后兼容性的更改 主要發(fā)布
Major release
第一個數(shù)字增加
并將中間和最后一個數(shù)字重置為零
2.0.0

版本規(guī)范識別

脫字符 ^

npm 通過脫字符(^)來限定所安裝模塊的主版本號,而該脫字符對于不同的版本號有不同的更新機制。

  • ^1.2.1 更新版本范圍為 >=1.2.1 && < 2.0.0 ;
  • ^0.2.1 更新版本范圍為 >=0.2.1 && < 0.3.0 ;
  • ^0.0.1 更新版本范圍為 0.0.2 (相當于鎖定為了 0.0.2 版本);

波浪號 ~

限定模塊的次要版本。

  • ~1.2.1 更新版本范圍為 >=1.2.1 && < 1.3.0 ;
  • ~0.2.1 更新版本范圍為 0.3.0 (相當于鎖定為了 0.3.0 版本);
  • 當主版本號/次版本號/修訂版本號為 X or x or * 時,那么 update 或 install 是會下載該分支最新的版本號;

星號 *

跟新或安裝模塊時會安裝>=0.0.0的最新版本

  • 1.x 更新版本范圍為 >=1.0.0&&< 2.0.0 ;
  • 1.2.x 更新版本范圍為 >=1.2.0&&< 1.3.0 ;

更多

1.可以把項目依賴的包固定在某一個版本,強制大家安裝相同的依賴樹

npm install react --save -E

上面命令會將 react 的版本號進行固定,但是該方式只能控制項目中直接依賴的包的版本,無法控制項目模塊中依賴的包的版本號,所以這種方式也無法讓不同的使用者得到相同的依賴樹。

2.使用 npm shrinkwrap ,可以將項目中的模塊版本進行精確鎖定 運行命令 npm shrinkwrap ,會產(chǎn)生一個 npm-shrinkwrap.json 文件,這個文件保存了所有當前使用的依賴模塊的版本。把該文件提交到 git 倉庫中,這樣其他人在 clone 你的項目的時候,執(zhí)行 npm install 命令時,npm 檢測到該文件中的信息會完整的還原出完全相同的依賴樹。

npm install --save-dev react // 安裝react
npm prune  // 清除未被使用的模塊
npm shrinkwrap

注:這種方式,安裝一個模塊包的方式顯得有些比較繁瑣

3.使用 yarn 可以得到模塊包精確控制的結果 yarn 是一個與 npm 兼容的 node 包管理器,使用它安裝 npm 包,會自動在項目目錄創(chuàng)建一個yarn.lock 文件,該文件包含了當前項目中所安裝的依賴包的版本信息,其他人在使用 yarn 安裝項目的依賴包時就可以通過該文件創(chuàng)建一個完全相同的依賴環(huán)境。

yarn init //使用yarn創(chuàng)建一個項目
yarn add <package> //使用yarn 安裝一個包

此外,yarn 除了可以自動幫我們鎖定依賴包的版本,yarn 還在本地緩存已經(jīng)安裝過的包,當再次安裝時,直接從本地讀取即可。安裝速度得到大大提升。但 yarn 的使用需要整個團隊都去使用,還是有一定的成本的。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • nodejs圖片處理工具gm用法小結

    nodejs圖片處理工具gm用法小結

    這篇文章主要介紹了nodejs圖片處理工具gm用法小結,詳細的介紹了gm的使用,還有圖片處理的實例,非常具有實用價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-12-12
  • 使用Jasmine和Karma對AngularJS頁面程序進行測試

    使用Jasmine和Karma對AngularJS頁面程序進行測試

    這篇文章主要介紹了使用Jasmine和Karma對AngularJS頁面程序進行測試的方法,以Node.js為環(huán)境,非常適合JavaScript的全棧開發(fā)時使用,需要的朋友可以參考下
    2016-03-03
  • nodejs文件操作模塊FS(File System)常用函數(shù)簡明總結

    nodejs文件操作模塊FS(File System)常用函數(shù)簡明總結

    這篇文章主要介紹了nodejs文件操作模塊FS(File System)常用函數(shù)簡明總結,對FS模塊的大部份異步函數(shù)做了介紹,而且用中文注釋,這下用起來方便了,需要的朋友可以參考下
    2014-06-06
  • 關于NodeJS中的循環(huán)引用詳解

    關于NodeJS中的循環(huán)引用詳解

    這篇文章主要給大家介紹了關于NodeJS中的循環(huán)引用的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用NodeJS具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-07-07
  • Node.js中使用jQuery的做法

    Node.js中使用jQuery的做法

    在Node.js中使用jQuery的做法,需要先安裝jquery,npm install jquery ,安裝后的版本是 3.1.0,本文介紹的非常詳細,具有參考借鑒價值,感興趣的朋友一起看下吧
    2016-08-08
  • 實現(xiàn)一個完整的Node.js RESTful API的示例

    實現(xiàn)一個完整的Node.js RESTful API的示例

    本篇文章主要介紹了實現(xiàn)一個完整的Node.js RESTful API的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • nodejs npm錯誤Error:UNKNOWN:unknown error,mkdir ''D:\Develop\nodejs\node_global''at Error

    nodejs npm錯誤Error:UNKNOWN:unknown error,mkdir ''D:\Develop\n

    今天小編就為大家分享一篇關于nodejs npm錯誤Error:UNKNOWN:unknown error,mkdir 'D:\Develop\nodejs\node_global'at Error,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • NodeJS實現(xiàn)微信公眾號關注后自動回復功能

    NodeJS實現(xiàn)微信公眾號關注后自動回復功能

    這篇文章主要為大家詳細介紹了NodeJS實現(xiàn)微信公眾號關注后自動回復功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 淺談nodejs中的類定義和繼承的套路

    淺談nodejs中的類定義和繼承的套路

    本篇文章主要介紹了淺談nodejs中的類定義和繼承的套路,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • WebSocket+node.js創(chuàng)建即時通信的Web聊天服務器

    WebSocket+node.js創(chuàng)建即時通信的Web聊天服務器

    這篇文章主要為大家詳細介紹了WebSocket+node.js創(chuàng)建即時通信的Web聊天服務器的相關資料,感興趣的小伙伴們可以參考一下
    2016-08-08

最新評論

南溪县| 沙洋县| 永嘉县| 苗栗县| 县级市| 海宁市| 武平县| 浦县| 康保县| 濉溪县| 马尔康县| 凤阳县| 云南省| 柯坪县| 林西县| 宁国市| 濉溪县| 杭锦旗| 洛隆县| 中卫市| 广西| 客服| 巴里| 泰和县| 九江县| 泰兴市| 上虞市| 肇源县| 汝州市| 大庆市| 黎平县| 社旗县| 泉州市| 左贡县| 西乌珠穆沁旗| 汝州市| 巩留县| 南丹县| 新干县| 白水县| 微山县|