iT邦幫忙

DAY 13
0

Node.js 系列學習日誌系列 第 13

Node.js 系列學習日誌 #13 - npm 相依套件指定版本含義與自動更新 package.json

  • 分享至 

  • xImage
  •  

在管理套件工具的版本時,在 package.json 檔案裡面有一個 dependencies 的部分,裡面包含著套件的名稱與版本號,今天要談的是版本號的指定。

而這個版本號的指定是有個規範,它是語意化版本 http://semver.org/lang/zh-TW/ 根據它作為版號的規則

版本格式:主版號.次版號.修訂號 也就是 Major.Minor.Path 的形式
主版號:當你做了不相容的 API 修改,
次版號:當你做了向下相容的功能性新增,
修訂號:當你做了向下相容的問題修正。

那麼在 package.json 檔案裡面的相依套件的版本要怎麼填呢?版本號的範圍?

1.2.3, = 1.2.3 : 指定版本 1.2.3

1.2.3 :大於 1.2.3
<1.2.3 :小於 1.2.3
=1.2.3 :大於 1.2.3
<=1.2.3:小於 1.2.3
1.2.3 - 2.3.4 :大於 1.2.3 且小於 2.3.4
~1.2.3 :合理接近 1.2.3 版本, 等價 >=1.2.3-0 <1.3.0-0
~1.2 :等價 >1.2.0-0 <1.3.0-0,也就是 1.2 版本的同樣等價於 1.2.x 版本奧
~1:等價於 >1.0.0-0 <2.0.0-0 ,也就是 1 開頭的版本等價於 1.x 版本號
* :任意版本

最上面的圖,使用了好幾種定義版本的方式,就以 * 的寫法風險也比較大一點,因為無法保證 npm 安裝的版本是最新的版本,最保守一點的就是直接指定版本號,而如何得知版本號,可以透過

$npm info {套件名稱} version

方式去做查詢。

========

自動更新 package.json,介紹 autodhttps://github.com/node-modules/autod

這是一個自動分析所有的文件,引入的模組不需要手動更新 package.json ,並且它會同時自動更新 package.json

先看一下有哪些的 help 可以使用

接著開始執行 autod 的指令,在這邊我下了一個 -e 把 public, view 忽略,另外 -w 讓這份 package.json 能夠自動更新寫入

原始的 package.json

自動修正後的 package.json

是不是有很大的不同呢,而且又能夠自動更新,試試看囉

參考資料:
http://semver.org/lang/zh-TW/
http://blog.eisneim.com/articles/2014-7-5-meaning-of-npm-bower-version-prefix.html
https://cnodejs.org/topic/52dcc0a578990b04112e2f09


上一篇
Node.js 系列學習日誌 #12 - bower 管理相依套件工具
下一篇
Node.js 系列學習日誌 #14 - REST 路由規則
系列文
Node.js 系列學習日誌30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言