npm install 、npm install --save 和 npm install --save-dev的區(qū)別介紹
相同點(diǎn)
三者都會(huì)本地安裝包到項(xiàng)目的node_modules目錄中
區(qū)別
區(qū)別在于對(duì)項(xiàng)目package.json的修改,npm install不會(huì)修改package.json,而后兩者會(huì)將依賴添加進(jìn)package.json,后兩者的區(qū)別請(qǐng)看下文循序漸進(jìn)。
指定依賴包
指定包取決于你的項(xiàng)目,你需要在package.json
文件中列出你需要使用的包,有兩種包可以選擇:
- “dependencies”: 這些包都是你的應(yīng)用程序在生產(chǎn)環(huán)境中所需要的。
- “devDepedencies”:這些包只是在開發(fā)和測試中需要的。
手動(dòng)編輯package.json文件
你可以手動(dòng)編輯你的package.json
。你需要在包的dependencies 對(duì)象中創(chuàng)建一個(gè)屬性用來指出你需要添加的依賴。
例如下面的項(xiàng)目中,在主要生產(chǎn)環(huán)境中使用包my_dep的版本1.0.0,而在在開發(fā)環(huán)境中使用包 my_test_framework 的3.1.0版本。
{ "name": "my_package", "version": "1.0.0", "dependencies": { "my_dep": "^1.0.0" }, "devDependencies" : { "my_test_framework": "^3.1.0" } }
--save
和--save-dev
下載標(biāo)簽
- 他們表面上的區(qū)別是--save 會(huì)把依賴包名稱添加到 package.json 文件 dependencies 鍵下,--save-dev 則添加到 package.json 文件 devDependencies 鍵下.
- dependencies是運(yùn)行時(shí)依賴,devDependencies是開發(fā)時(shí)的依賴。即devDependencies 下列出的模塊,是我們開發(fā)時(shí)用的
比如 我們安裝 js的壓縮包gulp-uglify 時(shí),我們采用的是 “npm install gulp-uglify --save-dev”命令安裝,因?yàn)槲覀冊(cè)诎l(fā)布后用不到它,而只是在我們開發(fā)才用到它。dependencies 下的模塊,則是我們發(fā)布后還需要依賴的模塊,譬如像jQuery庫或者Angular框架類似的,我們?cè)陂_發(fā)完后后肯定還要依賴它們,否則就運(yùn)行不了。
補(bǔ)充:正常使用npm install時(shí),會(huì)下載dependencies和devDependencies中的模塊,當(dāng)使用npm install --production或者注明NODE_ENV變量值為production時(shí),只會(huì)下載dependencies中的模塊。
到此這篇關(guān)于npm install 、npm install --save 和 npm install --save-dev的區(qū)別的文章就介紹到這了,更多相關(guān)npm install --save和npm install --save-dev區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
js canvas實(shí)現(xiàn)擦除效果示例代碼
擦除效果在我們?nèi)粘i_發(fā)中也是時(shí)有見到的,通過擦除效果大大加強(qiáng)了與用戶的交互性,所以下面這篇文章主要給大家介紹了利用js和canvas實(shí)現(xiàn)擦除效果的相關(guān)資料,文中給出了詳細(xì)的介紹和示例代碼,需要的朋友可以參考借鑒,下面來一起看看吧。2017-04-04JavaScript ECMA-262-3 深入解析.第三章.this
在這篇文章里,我們將討論跟執(zhí)行上下文直接相關(guān)的更多細(xì)節(jié)。討論的主題就是this關(guān)鍵字2011-09-09javascript實(shí)現(xiàn)最長公共子序列實(shí)例代碼
最長公共子序列(longest common sequence)和最長公共子串(longest common substring)不是一回事兒,下面這篇文章主要給大家介紹了關(guān)于javascript實(shí)現(xiàn)最長公共子序列的相關(guān)資料,需要的朋友可以參考下。2018-02-02bootstrap的3級(jí)菜單樣式,支持母版頁保留打開狀態(tài)實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猙ootstrap的3級(jí)菜單樣式,支持母版頁保留打開狀態(tài)實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11c#程序員對(duì)TypeScript的認(rèn)識(shí)過程
本文向大家詳細(xì)展示了從C#程序員的視角學(xué)習(xí)TypeScript的過程,主要是針對(duì)這兩種語言的異同進(jìn)行了簡單的對(duì)比學(xué)習(xí),希望對(duì)大家能夠有所幫助。2015-06-06JavaScript實(shí)現(xiàn)復(fù)制文章自動(dòng)添加版權(quán)
自己辛辛苦苦寫的文章,輕易就被別人復(fù)制-粘貼去了,是不是很傷心呢?小編今天給大家整理了兩個(gè)方法,讓別人復(fù)制自己的文章時(shí),自動(dòng)在文章的結(jié)尾添加自己的版權(quán)信息。2016-08-08