亚洲av日韩av永久无码久久,免费的视频app网站,欧美性猛交xxxx免费看,国产成人精品三级麻豆

你不知道的--save-dev和--save的區(qū)別

2020-3-26    seo達(dá)人

網(wǎng)上對于這兩個的區(qū)別解釋都是統(tǒng)一口徑的,一個是開發(fā)依賴,一個是線上依賴,打包發(fā)布需要用到的要添加到線上依賴,一模一樣的回答,誤導(dǎo)了很多人。今天自己測試一下這兩個命令,記錄一下。



–save-dev,會在devDependencies里面添加依賴



-D,會在devDependencies里面添加依賴



–save,會在dependencies里面添加依賴



-S,會在dependencies里面添加依賴



devDependencies和dependencies可以同時存在同一個包的依賴。



如果npm install xxx后面沒有輸入要保存到哪個里面,devDependencies和dependencies都沒有。



我這邊直接npm install jquery,node_modules下有jQuery。然后我刪除node_modules,執(zhí)行npm install,node_modules下并沒有下載jQuery。



所以,安裝依賴的時候如果沒有加上要依賴到開發(fā)還是線上,只是臨時的在node_modules里面幫你下載,而devDependencies和dependencies的依賴都會幫你下載。



然后我在devDependencies下安裝依賴:



"devDependencies": {  

    "html-webpack-plugin": "^4.0.3", 

    "jquery": "^3.4.1",  

    "webpack": "^4.42.1", 

    "webpack-cli": "^3.3.11"

}



在入口文件引用和打印jQuery:



import $ from 'jquery'

console.log($)



打包之后,可以使用jQuery。



然后我在dependencies下安裝依賴:



"dependencies": { 

    "html-webpack-plugin": "^4.0.3", 

    "jquery": "^3.4.1", 

    "webpack": "^4.42.1", 

    "webpack-cli": "^3.3.11"

}



在入口文件引用和打印jQuery:



import $ from 'jquery'

console.log($)



打包之后,可以使用jQuery。



測試的結(jié)果就是,無論是–save還是–save-dev,對于打包都沒有任何影響。devDependencies和dependencies兩種情況,打包出來的main.js都把jQuery打包進(jìn)去。這兩種情況,如果都沒有引用jQuery的情況下,也都不會把jQuery打包。



接著在一個空白的項目里面下載axios,npm install axios -S,打開node_modules文件夾:







發(fā)現(xiàn)多出了另外三個依賴,查看axios下的package.json:



"dependencies": {



    "follow-redirects": "1.5.10"



}



查看follow-redirects下的package.json:



"dependencies": {



    "debug": "=3.1.0"



}



查看debugs下的package.json:



"dependencies": {



    "ms": "2.0.0"



}



最后ms的package.json沒有dependencies。



而這幾個包的devDependencies依賴的包沒有一個下載。



接著我在node_modules把follow-redirects、debugs、ms都刪了,把axios里面的package.js的dependencies給刪了,然后執(zhí)行npm install,發(fā)現(xiàn)沒有下載follow-redirects、debugs、ms這幾個,也證明了如果node_modules里面有下載的包,是不會重新去下載的。我把node_modules刪除,執(zhí)行npm install,這幾個包又都下載下來了。



最后得出 的結(jié)論是,–save-dev和–save在平時開發(fā)的時候,對于打包部署上線是沒有任何影響的。如果你是發(fā)布一個包給別人用,而你開發(fā)的包依賴第三方的包,那么你如果是–save,那么別人安裝你開發(fā)的包,會默認(rèn)下載你依賴的包,如果你是–save-dev,那么別人安裝你開發(fā)的包,是不會默認(rèn)幫忙下載你依賴的包。



其實發(fā)布的包如果沒有必要,很少會默認(rèn)幫你下載,比如bootstrap,依賴jQuery,怕你原本就下載了引起沖突,也不會在dependencies里面安裝jQuery而是:



"peerDependencies": {



    "jquery": "1.9.1 - 3",



    "popper.js": "^1.16.0"



}



表示bootstrap依賴于這兩個包,你必須安裝,版本不固定,但是一定要安裝這兩個包,安裝的時候會有警告:



peerDependencies WARNING bootstrap@ requires a peer of jquery@1.9.1 - 3 but none was installed



peerDependencies WARNING bootstrap@
requires a peer of popper.js@^1.16.0 but none was installed



當(dāng)你引用了然后打包,報錯:



ERROR in ./node_modules/_bootstrap@4.4.1@bootstrap/dist/js/bootstrap.js



Module not found: Error: Can't resolve 'jquery' in 'C:\Users\wade\Desktop\savedev\node_modules_bootstrap@4.4.1@bootstrap\dist\js'



 @ ./node_modules/_bootstrap@4.4.1@bootstrap/dist/js/bootstrap.js 7:82-99



 @ ./src/index.js



 



ERROR in ./node_modules/_bootstrap@4.4.1@bootstrap/dist/js/bootstrap.js



Module not found: Error: Can't resolve 'popper.js' in 'C:\Users\wade\Desktop\savedev\node_modules_bootstrap@4.4.1@bootstrap\dist\js'



 @ ./node_modules/_bootstrap@4.4.1@bootstrap/dist/js/bootstrap.js 7:101-121



 @ ./src/index.js



以上就是對–save和–save-dev的一些測試,想更快的得出結(jié)論其實是自己發(fā)布一個包。至于本人的答案是不是存在錯誤,歡迎指出,因為只是自己簡單測試的結(jié)果。


日歷

鏈接

個人資料

藍(lán)藍(lán)設(shè)計的小編 http://www.chinatradebeam.com

存檔

一个添下面两个吃奶把腿扒开| 欧美老熟妇又粗又大| 亚洲成av人片天堂网| 勃起大粗又硬湿又滑深又长| 成人亚洲a片v一区二区三区蜜月 | 人妻无码中文字幕| 伊人久久大香线蕉亚洲五月天| 亚洲精品欧美二区三区中文字幕| 999国产精品999久久久久久| 狠狠97人人婷婷五月| 无码人妻丰满熟妇区免费| 又色又爽又黄的视频软件app| 亚洲av无码专区国产不卡顿 | 久久综合狠狠综合久久综合88 | 中文字幕久久熟女蜜桃| 污视频在线观看| 亚洲毛片| 99久久精品国产免费| 国产女人18毛片水真多1| 精品无码三级在线观看视频 | 麻豆蜜桃69无码专区在线| 又爽又黄无遮挡高潮视频网站 | 免费观看性欧美大片无片| 国产v综合v亚洲欧美久久| 国产精品毛片va一区二区三区| 最美情侣免费观看完整版高清 | 亚洲熟妇色XXXXX欧美老妇| 国产精品偷伦视频免费观看了| 最新欧美精品一区二区三区| 人禽无码做爰在线观看| 激情综合一区二区三区| 无码人妻精品一区二区三区下载 | 亚洲成av人影片在线观看| 日日噜噜夜夜狠狠久久丁香五月| 香蕉欧美成人精品av在线| 色综合久久久久久久久五月| 亚洲av无码一区二区三区在线观看| 久久丫精品国产亚洲av不卡| 欧美激情无码视频一二三 | 亚洲AV无码一区二区乱孑伦AS| 亚洲欧美日韩久久精品第一区|