成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - 為什么要在dependencies中聲明依賴?

瀏覽:159日期:2023-08-31 10:36:34

問題描述

看到說--save安裝的模塊,會顯示在dependencies中。并且dependencies中的模塊表示生產(chǎn)環(huán)境的依賴。比如jQuery。

但是我不懂的是,拿jQuery舉例。我為什么要在dependencies中聲明依賴?生產(chǎn)環(huán)境中,我會直接用script標(biāo)簽引用jQuery,根本不需要dependencies。如果在dependencies中聲明了生產(chǎn)環(huán)境依賴的模塊,會怎么樣?會自動幫我添加script標(biāo)簽還是比如模塊打包時,打包生產(chǎn)環(huán)境模塊時會把dependencies中的依賴全部打包進(jìn)去?但是據(jù)我所知,比如webpack在模塊打包時是根據(jù)require的模塊創(chuàng)建的依賴圖表來打包的,所以我不太懂為什么要在dependencies聲明生產(chǎn)環(huán)境依賴。

問題解答

回答1:

我們在實際開發(fā)中會用到很多模塊,有些模塊(如,gulp,babel,這些放到devDependencies中)都只是開發(fā)環(huán)境中用到的,而jquery是用在生產(chǎn)環(huán)境中,當(dāng)你部署項目到生產(chǎn)環(huán)境時,執(zhí)行 npm install --production, 只會安裝dependencies中的模塊,這樣管理模塊就會很方便

回答2:

事實就是那個字段是設(shè)計給 node 的,所以你寫不寫都無所謂。

詳細(xì)來說,作為一個前端項目,你的依賴要么進(jìn)行打包,要么是 script 標(biāo)簽引入,所以你的 deps 字段里面有什么根本不會影響最終的代碼。

回答3:

如果你用<script>加入模塊的話,這個引入JS/CSS的方法本身用不到npm包管理,可以直接忽略package.json的配置問題

如果你使用如webpack進(jìn)行打包。webpack在模塊打包時是根據(jù)require的模塊創(chuàng)建的依賴圖表來打包的,這的確沒錯。但是之后還有一步,就是webpack通過依賴圖表進(jìn)行打包的時候,如果依賴圖表里有jQuery依賴,webpack還是要去找jQuery的文件,然后注入到打包的文件之中。如果你不寫dependencies的話,在團(tuán)隊開發(fā)中,另一個人改了一點代碼,然后用npm install安裝了依賴包,再重新打包的時候,webpack創(chuàng)建出依賴圖表,依賴圖表中依賴了jQuery,然而webpack在node_modules里卻找不到要注入到目標(biāo)文件的jQuery代碼,這樣他重新打包就會失敗。當(dāng)然,如果你只有自己一個人開發(fā)的話,可以忽略這一點。

當(dāng)然,dependencies還有一種應(yīng)用情況,比如說我之前寫的一個node.js爬蟲。由于這個爬蟲是直接用node運行JS代碼的,所以我的JS文件里面require()的包都需要寫在dependencies里,部署的時候用npm install安裝完這些依賴,require才能夠讀取到對應(yīng)的包。

回答4:

我覺得你可能是因為需要使用webpack去開發(fā)頁面,才使用node的。否則你不會去問dependencies和script之間的關(guān)系。這兩者之間毫無關(guān)系。

這里你揉雜了3個東西:

package.json的依賴管理

webpack的依賴管理

html中的腳本引入

 package.json的依賴管理

node不只是可以用來做頁面開發(fā),還可以做很多事情,比如開發(fā)服務(wù)器程序,開發(fā)JS庫等等。dependencies記錄和保證你的項目在被使用時的依賴;devDependencies記錄和保證你的項目在被開發(fā)時的依賴。

舉一個例子,我們開發(fā)一個庫,并準(zhǔn)備發(fā)布在NPM上。需要使用lodash.sample,開發(fā)時使用es6,并且還使用eslint對代碼風(fēng)格進(jìn)行規(guī)范。那么dependencies中就有l(wèi)odash.sample,devDependencies就有babel和eslint。

dependencies就保證了任何人在install我們這個庫的時候,lodash.sample都會被安裝(否則這個庫將無法正確運行);devDependencies保證任何人在(或者你自己在其他設(shè)備上)對這個項目進(jìn)行修改(開發(fā))時,通過npm install就能獲取同樣的開發(fā)環(huán)境(打包,轉(zhuǎn)碼嗎,約束,構(gòu)建等)。想想,如果你在另外一臺電腦上,想對開發(fā)這個庫的2.0版本,如果沒有devDependencies,你就需要手動的再次安裝babel和eslint等,要不你就要去從最初的項目中copy整個node_modules文件夾。

webpack的依賴管理

webpack是一個構(gòu)建工具,可以用在頁面的開發(fā)中去,也可以用在其他地方。webpack的依賴管理確實是通過require尋找依賴,它不依賴dependencies。

還是上面庫的例子,我們可以使用webpack進(jìn)行打包(那么devDependencies中應(yīng)該有webpack)。就算你npm install --save了其他十幾個模塊,webpack時,也只會將lodash.sample打進(jìn)來。

html中的腳本引入

webpack在用來開發(fā)頁面時,最先開始是將打包的js文件,手動的在html中以script形式引入,但是后來有插件幫我們自動完成這個過程。后來一些腳手架工具如vue-cli,內(nèi)置負(fù)責(zé)的webpack配置,將整個過程優(yōu)化和自動化。加上整個開發(fā)過程在node中完成,因此可能導(dǎo)致了你誤以為dependencies和script之間是否有聯(lián)系。

回到你的問題:“為什么要在dependencies聲明生產(chǎn)環(huán)境依賴”

原因是:不記錄這些依賴,其他人(或者你自己在其他設(shè)備上)進(jìn)行再開發(fā)時,無法知道該項目需要引入哪些依賴,無法進(jìn)行開發(fā)。如果你只是一個人不切換電腦的話,dependencies可以不使用。

回答5:

工作環(huán)境改變的時候,你的項目要是想正常運行。必須聲明依賴,這樣不管在哪里,只需要一句npm install即可還原工作環(huán)境,依賴什么的全部解決

標(biāo)簽: JavaScript
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
无码av中文一区二区三区桃花岛| 亚洲欧美日韩国产| 一区二区av| 国产精品久久久久久久久免费丝袜 | 精品国产91洋老外米糕| 国产在线精品一区二区夜色| 欧美图区在线视频| 狠狠色综合色综合网络| 欧美精品三级日韩久久| 国产精品亚洲一区二区三区在线| 欧美日韩一区二区三区免费看 | 精品久久久久久综合日本欧美| 豆国产96在线|亚洲| 欧美成人vps| www.色精品| 久久久久久久综合| 欧美不卡高清| 中文一区一区三区高中清不卡| 午夜天堂精品久久久久| 国产欧美精品国产国产专区| 欧美先锋影音| 亚洲精品乱码久久久久久黑人| 国产精品一区二区三区四区五区| 午夜影院久久久| 欧美综合视频在线观看| 亚洲精品福利视频网站| 国产伦精品一区二区三区照片91 | 色婷婷综合在线| 麻豆视频一区二区| 67194成人在线观看| www.综合网.com| 国产日韩欧美激情| 亚洲高清免费| 亚洲午夜视频在线观看| 欧美亚洲动漫制服丝袜| 国产一区二区三区蝌蚪| 精品对白一区国产伦| 国产精品v欧美精品v日本精品动漫| 一区免费观看视频| 国产农村妇女毛片精品久久莱园子 | 亚洲自拍偷拍av| 久久国产精品久久w女人spa| 男人操女人的视频在线观看欧美| 欧美精品久久一区| 成人av在线影院| 国产精品久久久久9999吃药| 亚洲女优在线| 韩国一区二区三区| 国产三级欧美三级日产三级99| 黄色工厂这里只有精品| 亚洲午夜在线电影| 欧美色精品在线视频| 大美女一区二区三区| 欧美国产综合色视频| 亚洲一区三区在线观看| 精品在线一区二区| 国产偷国产偷精品高清尤物| 亚洲三级免费| 久久精品国产一区二区三区免费看 | 91麻豆精品国产91久久久资源速度| 99国产精品久久| 亚洲蜜臀av乱码久久精品| 欧美在线视频日韩| 99麻豆久久久国产精品免费优播| 精品美女一区二区| 亚洲国产精品一区| 久久疯狂做爰流白浆xx| 国产色综合一区| 色综合激情五月| 99国产精品国产精品毛片| 夜夜亚洲天天久久| 欧美一区二区三区免费观看视频| 欧美人与禽性xxxxx杂性| 亚洲成人你懂的| 欧美大片免费久久精品三p| 伊人久久大香线蕉综合热线| 久久er99精品| 国产精品久久夜| 欧美日韩一区二区电影| 欧美激情1区2区3区| 五月激情丁香一区二区三区| 欧美mv和日韩mv国产网站| 一本色道久久精品| 国产一区二区在线影院| 亚洲免费资源在线播放| 在线视频你懂得一区| 91麻豆精品在线观看| 亚洲成人av一区| 久久综合五月天婷婷伊人| 美女尤物久久精品| 91丝袜高跟美女视频| 日韩经典一区二区| 中文字幕精品一区二区精品绿巨人| 老**午夜毛片一区二区三区| 91亚洲国产成人精品一区二三| 亚洲一区二区三区国产| 欧美成人a视频| 亚洲一区三区电影在线观看| 不卡视频一二三| 日韩制服丝袜av| 日本一区二区三区视频视频| 欧美日韩国产精品自在自线| 一区二区三区四区五区精品视频| 成人福利视频网站| 秋霞av亚洲一区二区三| 国产精品福利影院| 制服丝袜中文字幕一区| 亚洲欧美清纯在线制服| 欧美在线播放一区二区| 韩日欧美一区二区三区| 一区二区三区**美女毛片| 久久久不卡网国产精品二区| 欧美日韩成人在线| 另类天堂av| 欧美 日韩 国产 一区| 久久精品国产精品亚洲精品| 亚洲免费高清视频在线| 久久久蜜臀国产一区二区| 在线免费观看日本欧美| 在线日韩av永久免费观看| av动漫一区二区| 精久久久久久久久久久| 亚洲一二三四在线观看| 国产精品萝li| www欧美成人18+| 欧美天堂亚洲电影院在线播放| 99精品热6080yy久久| 91免费视频大全| 国产精品一卡二卡| 奇米精品一区二区三区四区| 洋洋av久久久久久久一区| 欧美国产精品一区| 日韩免费福利电影在线观看| 欧美最猛黑人xxxxx猛交| 国产伦精品一区二区三区视频黑人 | 天天操天天干天天综合网| 国产精品美女久久久久久久久 | 欧美日韩精品一区二区| 久久久久久亚洲精品杨幂换脸 | 老妇喷水一区二区三区| 99精品欧美| 在线成人黄色| 午夜欧美精品久久久久久久| 成人小视频免费在线观看| 国产一区二区在线视频| 六月丁香婷婷久久| 日本色综合中文字幕| 亚洲第一电影网| 亚洲精品菠萝久久久久久久| 国产精品天美传媒| 久久色中文字幕| 欧美精品一区二区三区久久久| 日韩精品一区二区三区在线| 欧美日韩激情在线| 在线视频日韩| 99精品国产一区二区青青牛奶| 在线国产欧美| 亚洲高清视频在线观看| 亚洲清纯自拍| 亚洲毛片视频| 在线天堂一区av电影| 国产欧美韩日| 国产一区二区三区高清| 国产偷久久久精品专区| 在线午夜精品| 亚洲永久免费精品| 男人的天堂亚洲在线| 麻豆精品91| 久久久久国产精品一区二区| 99视频在线精品国自产拍免费观看| 日韩视频免费| 国产亚洲欧美一区二区| 亚洲欧美日韩综合国产aⅴ| 麻豆成人在线| 日本福利一区二区| 欧洲国产伦久久久久久久| 欧美日本免费一区二区三区| 67194成人在线观看| 欧美电视剧免费全集观看 | 美女精品一区二区| 久久不见久久见中文字幕免费| 久久99精品网久久| 精品亚洲成a人| 国产99一区视频免费 | 激情视频一区二区三区| 亚洲三级免费| 先锋影音久久久| 日本丰满少妇一区二区三区| 91国在线观看| 欧美一区二区在线不卡| 欧美大片免费久久精品三p| 久久久精品国产免大香伊| 日本一区二区三区久久久久久久久不 | 亚洲人精品午夜| 亚洲国产色一区| 免费在线欧美视频| 日本欧美一区二区三区| 国产中文字幕精品| 成人福利视频网站| 狠狠色噜噜狠狠狠狠色吗综合|