npm install 生成的angular項目中package-lock.json是什么?有什么用處?有什么坑?

這個package-lock.json 是在 `npm install`時候生成一份文件,用以記錄當前狀態下實際安裝的各個npm package的具體來源和版本號。

它有什么用呢?因為npm是一個用于管理package之間依賴關系的管理器,它允許開發者在pacakge.json中間標出自己項目對npm各庫包的依賴。你可以選擇以如下方式來標明自己所需要庫包的版本

這里舉個例子:

"dependencies": {
 "@types/node": "^8.0.33",
},

這里面的 向上標號^是定義了向后(新)兼容依賴,指如果 types/node的版本是超過8.0.33,并在大版本號(8)上相同,就允許下載最新版本的 types/node庫包,例如實際上可能運行npm install時候下載的具體版本是8.0.35


以后直接改 package.json 文件相應模塊的版本號,再執行npm install不會更新了(好可怕),你只能手動用npm install [email protected]指定版本號來安裝,然后它會自動更新 package-lock.json 文件。直接執行npm install時,如果不存在 package-lock.json 文件,它會根據安裝模塊后的 node_modules 目錄結構來創建;如果已經存在 package-lock.json 文件,則它只會根據 package-lock.json 文件指定的結構來下載模塊,并不會理會 package.json 文件。


問題:

遇到一個問題,引用stylus失敗,已解決,但是有點困惑

背景如下:
npm目前升級到了5.0.3
npm install的時候目錄會多一個package-lock.json這個文件
此時我在package.json的devDependencies中添加了

"stylus": "^0.54.5","stylus-loader": "^3.0.1"

然后在終端重新運行npm install的時候,項目中的node_modules并沒有出現stylus文件夾
查了下資料說是新版本的坑
給的解決辦法是切換回之前的npm版本……

我的解決過程
1、刪除package-lock.json,重新npm install,node_modules中出現了stylus文件夾了,然而還是報錯
2、在終端直接運行 sudo npm install stylus-loader stylus --save-dev 結果就編譯成功了

轉載請說明出處:原文鏈接 http://www.yixcsu.live/qdjs/30

相關閱讀:

安裝npm包應該放在devDependencies還是dependencies

AntDesign Of Angular之響應式柵格尺寸:nzXs、nzSm、nzMd、nzLg、nzXl、nzXXl

Angular響應式表單校驗及提交主動觸發所有校驗

Angular 報錯 Can't bind to 'formGroup' since it isn't a known property of 'form'

Angular Ionic項目build打包后發布到IIS刷新報錯404解決方法

大乐透专家预测 福建快三 五分彩 可以赚钱提现的手 % 麻将上下分是是骗人的 大话2职业挖什么矿石赚钱 1zplay电竞比分 河北快3 歌星赚不赚钱 梦幻西游2个号怎么赚钱 财神捕鱼放水规律 儿童可以赚钱吗 广东好彩1 送货下乡批发什么赚钱 中国游戏中心能赚钱吗 广东11选5 电脑只有一个盘怎么赚钱