一只斗牛犬
2018-11-23 19:14:42
看到說--save安裝的模塊,會顯示在dependencies中。并且dependencies中的模塊表示生產環境的依賴。比如jQuery。但是我不懂的是,拿jQuery舉例。我為什么要在dependencies中聲明依賴?生產環境中,我會直接用script標簽引用jQuery,根本不需要dependencies。如果在dependencies中聲明了生產環境依賴的模塊,會怎么樣?會自動幫我添加script標簽還是比如模塊打包時,打包生產環境模塊時會把dependencies中的依賴全部打包進去?但是據我所知,比如webpack在模塊打包時是根據require的模塊創建的依賴圖表來打包的,所以我不太懂為什么要在dependencies聲明生產環境依賴。
1 回答

千巷貓影
TA貢獻1829條經驗 獲得超7個贊
如果你用
<script>
加入模塊的話,這個引入JS/CSS的方法本身用不到npm包管理
,可以直接忽略package.json
的配置問題如果你使用如
webpack
進行打包。webpack在模塊打包時是根據require的模塊創建的依賴圖表來打包的,這的確沒錯。但是之后還有一步,就是webpack通過依賴圖表進行打包的時候,如果依賴圖表里有jQuery依賴,webpack還是要去找jQuery的文件,然后注入到打包的文件之中。如果你不寫dependencies的話,在團隊開發中,另一個人改了一點代碼,然后用npm install
安裝了依賴包,再重新打包的時候,webpack創建出依賴圖表,依賴圖表中依賴了jQuery,然而webpack在node_modules里卻找不到要注入到目標文件的jQuery代碼,這樣他重新打包就會失敗。當然,如果你只有自己一個人開發的話,可以忽略這一點。當然,dependencies還有一種應用情況,比如說我之前寫的一個node.js爬蟲。由于這個爬蟲是直接用node運行JS代碼的,所以我的JS文件里面
require()
的包都需要寫在dependencies里,部署的時候用npm install
安裝完這些依賴,require才能夠讀取到對應的包。
添加回答
舉報
0/150
提交
取消