為了方便攜帶源碼,可以在安裝依賴時--save或--save-dev,把依賴記錄在package.json中,就可以把node_module文件夾刪除,在需要的時候npm i把你安裝過的依賴自動下載回來
一、package.json和package-lock.json
1、package.json
- 主要用來定義項目中需要依賴的包
2、package-lock.json
- 在 npm install時候生成一份文件,用以記錄當前狀態(tài)下實際安裝的各個npm package的具體來源和版本號。
- 每次執(zhí)行完npm install之后會對應生成package-lock文件,該文件記錄了上一次安裝的具體的版本號,相當于是提供了一個參考,在出現(xiàn)版本兼容性問題的時候,就可以參考這個文件來修改版本號即可。
二、npm install的區(qū)別
- 下面以vue-router為例
1、npm install vue-router
- 會安裝在node_modules目錄中,不會修改package.json文件。之后把node_modules文件夾刪除或者項目中沒有node_modules,運行npm install時不會自動安裝,因為package.json文件沒有記錄。
2、npm install vue-router --save(生產環(huán)境)
(1)會把vue-router包安裝到node_modules目錄中
(2)會在package.json的dependencies屬性下添加vue-router
(3)之后把node_modules文件夾刪除或者項目中沒有node_modules,之后運行npm install命令時,會自動安裝vue-router到node_modules目錄中
(4)之后運行npm install –production或者注明NODE_ENV變量值為production時,會自動安裝vue-router到node_modules目錄中
3、npm install vue-router --save-dev(開發(fā)環(huán)境)
(1)會把vue-router包安裝到node_modules目錄中
(2)會在package.json的devDependencies屬性下添加vue-router
(3)之后把node_modules文件夾刪除或者項目中沒有node_modules,之后運行npm install命令時,會自動安裝vue-router到node_modules目錄中
(4)之后運行npm install –production或者注明NODE_ENV變量值為production時,不會自動安裝vue-router到node_modules目錄中
4、總結
(1)發(fā)布到線上的叫生產環(huán)境,在本地開發(fā)的時候叫開發(fā)環(huán)境,--save就是會打包到線上去并且在線上環(huán)境能用到的,比如你npm install 一個vue-router,這個在線上環(huán)境也是能用到的依賴,所以你要--save
(2)比如vue-loader這個組件只需要在開發(fā)的時候編譯就好,線上并不需用的到,所以就放在開發(fā)的--save-dev里就好
(3)--save安裝的時候會在package.json文件中的dependencies屬性添加模塊,這個屬性就是發(fā)布時依賴的包
(4)--save-dev安裝的時候會在package.json文件中的devDependencies屬性添加模塊,這個屬性就是開發(fā)時依賴的包