<strike id="cy2gs"><menu id="cy2gs"></menu></strike>
  • <del id="cy2gs"><dfn id="cy2gs"></dfn></del>
  • 你不知道的--save-dev和--save的區(qū)別

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

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



    –save-dev,會(huì)在devDependencies里面添加依賴



    -D,會(huì)在devDependencies里面添加依賴



    –save,會(huì)在dependencies里面添加依賴



    -S,會(huì)在dependencies里面添加依賴



    devDependencies和dependencies可以同時(shí)存在同一個(gè)包的依賴。



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



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



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



    然后我在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。



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



    接著在一個(gè)空白的項(xiàng)目里面下載axios,npm install axios -S,打開node_modules文件夾:







    發(fā)現(xiàn)多出了另外三個(gè)依賴,查看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。



    而這幾個(gè)包的devDependencies依賴的包沒有一個(gè)下載。



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



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



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



    "peerDependencies": {



        "jquery": "1.9.1 - 3",



        "popper.js": "^1.16.0"



    }



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



    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)你引用了然后打包,報(bào)錯(cuò):



    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



    以上就是對(duì)–save和–save-dev的一些測(cè)試,想更快的得出結(jié)論其實(shí)是自己發(fā)布一個(gè)包。至于本人的答案是不是存在錯(cuò)誤,歡迎指出,因?yàn)橹皇亲约汉?jiǎn)單測(cè)試的結(jié)果。


    日歷

    鏈接

    個(gè)人資料

    存檔

    主站蜘蛛池模板: 亚洲精品无码午夜福利中文字幕 | 免费精品精品国产欧美在线| 国产亚洲精品a在线无码| 精品人妻无码专区中文字幕| 国产在线拍揄自揄视精品不卡 | 久久国产精品久久| 特级精品毛片免费观看| 四库影院永久四虎精品国产| 国産精品久久久久久久| 欧美一区二区精品系列在线观看| 精品无码一区二区三区爱欲九九| 在线精品亚洲一区二区小说| 日韩三级精品| 欧美精品黑人粗大视频| 精品人妻一区二区三区毛片| 国产精品毛片一区二区| 91精品在线国产| 麻豆精品久久久一区二区| 国产精品久久久久久福利69堂| 国产在线精品无码二区| 久久精品国产亚洲精品2020 | 久久精品www人人爽人人| 中文字幕一精品亚洲无线一区 | 人人妻人人澡人人爽人人精品 | 午夜三级国产精品理论三级 | 精品午夜福利在线观看| 人人妻人人澡人人爽人人精品电影| 亚洲国产精品无码专区影院 | 熟女精品视频一区二区三区| 一区二区国产精品| 亚洲性日韩精品国产一区二区| 午夜成人精品福利网站在线观看 | 熟妇无码乱子成人精品| 日本内射精品一区二区视频| 久久精品国产亚洲av水果派| 无码国产精品一区二区免费式芒果| 亚洲一区无码精品色| 亚洲欧洲自拍拍偷精品 美利坚| 亚洲精品成人区在线观看| 在线精品动漫一区二区无广告| 夜夜高潮夜夜爽国产伦精品|