本篇文章更新時間:2019/02/16
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣 或 新台幣 贊助支持。
開始一個 NodeJS 專案很簡單
npm init
填寫了專案資訊後開始需要什麼套件就裝什麼的過程
npm install XXX --save
--save
是為了保留用了哪些套件來達到讓使用或是接手開發的夥伴能夠重現環境
npm install
這指令還原環境
這看起來好像沒什麼,但是如果只是用 save 來記錄使用套件的做法,package.json
檔案中預設會以^
以上版本的方式標記該使用套件!
問題可能就因此發生,也許某個套件的相依套件所需要的版本是 3.4.2
但他發現有 3.7.0
就去抓這版本,而導致某些因為升級套件沒處理好的部分噴出錯誤
今天夥伴剛好再處理前端開發環境時使用我打包好的環境發現這問題, [node-saas](https://www.npmjs.com/package/node-sass)
升級所帶來的影響還真不小XD
其實這問題是可以被避免的,當然如果專案本身的開發能夠隨著其它套件更新而帶來提升是最好的結果,但如果有這種可能發生或許可以將package.json中相依套件前符號改成@
指定版本還有本篇的工具
npm shrinkwrap
這指令會在專案確定要發佈時使用,記錄所有套件的相依資訊,確保使用者不會偏離軌道XD
根據官方說明,執行 install
時會先查看有無 shrinkwrap 產生的 npm-shrinkwrap.json
檔案並且優先使用此紀錄哦!
其實這指令還真是冷門啊! 在聽到 John 介紹之後才知道有這玩意 哈哈 (之前最多就用
@
符號的說~)