摘要:你很明白嗎依賴開發依賴當我們敲的時候會安裝哪些依賴,和都會安裝嗎還是只安裝項目依賴包是放在和簡單問兩個問題,勾起大家對,,的回憶。和還是有明顯區別的。結論當你在開發一個包的時候,還是要好好管理你的依賴和依賴。
npm install 你很明白嗎
dependencies 依賴
devDependencies 開發依賴
【當我們敲 npm install 的時候會安裝哪些依賴,dependencies 和 devDependencies 都會安裝嗎?還是只安裝 dependencies ?】
【項目依賴包是放在 dependencies 和 devDependencies ?】
簡單問兩個問題,勾起大家對 npm install,dependencies ,devDependencies 的回憶。
下面進入正文
npm install 也支持直接輸入 Github 代碼庫地址
npm install git://github.com/package/path.git npm install git://github.com/package/path.git#0.1.0
安裝之前,npm install 會先檢查,node_modules 目錄之中是否已經存在指定模塊。如果存在,就不再重新安裝了,即使遠程倉庫已經有了一個新版本,也是如此。
如果你希望,一個模塊不管是否安裝過, npm 都要強制重新安裝,可以使用 -f 或 --force 參數。
npm install--force
npm install 的時候會安裝哪個里面的依賴?dependencies 還是 devDependencies
【npm install 默認會安裝 dependencies 字段和 devDependencies 字段中的所有模塊】。 如果軟件包具有 package-lock 或 shrinkwrap 文件,則依賴項的安裝將由此驅動,如果兩個文件都存在,則 npm-shrinkwrap.json 優先。 請參閱 package-lock.json 和 npm-shrinkwrap。
【ok,那么也就是說,當我們在拿到一個項目的時候,使用 npm install 是會安裝 dependencies 和 devDependencies 里所有的依賴包的。】
那么是否意味著,我們在安裝依賴包的時候,不需要過多的去糾結是使用 -S 還是 -D 呢 ?隨便安裝到 dependencies 或者 devDependencies 里都行,反正 npm install 的時候,都會安裝 dependencies 和 devDependencies 里面的依賴。
其實不然!
如果使用 --production 參數,可以只安裝 dependencies 字段的模塊。
$ npm install --production 或者 $ NODE_ENV=production npm install
【所以,我們做好 dependencies 和 devDependencies 的區分的話,在使用 npm install --production 的時候,還是有區別的。】
不過,感覺這個 npm install --production 的使用場景不是很多。我好像沒怎么用,可能以后會用到吧。
內心os:既然 npm install --production 我用不到,那我在安裝依賴包的時候,還是隨意吧,放到 dependencies 或者 devDependencies 都無所謂,反正 npm install 的時候會把 dependencies 和 devDependencies 里面的依賴包都安裝下來。哈哈~~,隨意使用 -S 或者 -D 咯~
錯!
錯!!
錯!!!
這樣想就錯了。dependencies 和 devDependencies 還是有明顯區別的。我們接著來看。
我們在安裝依賴包的時候,要如何區分是安裝到 dependencies 還是 devDependencies 中呢?
dependencies 依賴
這個可以說是我們 npm 核心一項內容,依賴管理,這個對象里面的內容就是我們這個項目所依賴的 js 模塊包。下面這段代碼表示我們依賴了 markdown-it 這個包,版本是 ^8.1.0 ,代表最小依賴版本是 8.1.0 ,如果這個包有更新,那么當我們使用 npm install 命令的時候,npm 會幫我們下載最新的包。當別人引用我們這個包的時候,包內的依賴包也會被下載下來。
"dependencies": { "markdown-it": "^8.1.0" }
devDependencies 開發依賴
【在我們開發的時候會用到的一些包,只是在開發環境中需要用到,但是在別人引用我們包的時候,不會用到這些內容,放在 devDependencies 的包,在別人引用的時候不會被 npm 下載】。
"devDependencies": { "autoprefixer": "^6.4.0",0", "babel-preset-es2015": "^6.0.0", "babel-preset-stage-2": "^6.0.0", "babel-register": "^6.0.0", "webpack": "^1.13.2", "webpack-dev-middleware": "^1.8.3", "webpack-hot-middleware": "^2.12.2", "webpack-merge": "^0.14.1", "highlightjs": "^9.8.0" }
當你有了一個完整的 package.json 文件的時候,就可以讓人一眼看出來,這個模塊的基本信息,和這個模塊所需要依賴的包。我們可以通過 npm install 就可以很方便的下載好這個模塊所需要的包。
結論:當你在開發一個 npm 包的時候,還是要好好管理你的 dependencies 依賴 和 devDependencies 依賴。 之前有個同事寫了一個 loading 組件,發到 npm 上面去了,他跟我說簡單好用,我就用了。但是我發現他這么小的一個組件,為什么包這么大。一看,原來他寫這個 npm 包的時候,所有的依賴都放到 dependencies 里面了(包括 gulp,browser-asyc,壓縮代碼的,express…等等一些他開發時用的工具)。
你們說,他是不是挺狠的!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/110232.html
摘要:現在,讓我們創建項目的入口,并使用然后創建我們的配置,文件名為,的配置文件是一個,并且需要成一個對象在這里,告訴那些文件是你應用的入口。代碼分割便是用來解決之前所說的單集成模塊不可維護的引用的問題。 構建工具逐漸成為前端工程必備的工具,Grunt、Gulp、Fis、Webpack等等,譯者有幸使用過Fis、Gulp。前者是百度的集成化方案,提供了一整套前端構建方案,優點是基本幫你搞定了...
摘要:異步任務的核心是名稱與任務名一致的函數,該函數接受兩個參數一個函數和命令行的輸入值。 廢話:如果是不能給 hr 發這樣的簡歷之類大家都懂的話,麻煩您就不要回復了,謝謝! 國際慣例: https://github.com/dongsuo/vu... 正文: 作為一名程序員,還是有一份有特色的在線簡歷會比較好吧……在線簡歷很容易做得很丑哎……套模板這種事情有點丟人呀……那……干嘛不用程序...
摘要:佳佳是我朋友里面最優秀的女孩之一,事業順利,能力也十分拔尖,最近一直在安排移民加拿大的事宜。其實我已經準備了一年多,前前后后的,連我北京的房子都賣了。佳佳,就是那個非常勇敢的人。我笑了笑,也許未來她在北京要比溫哥華美麗和快樂的多。 showImg(https://segmentfault.com/img/bV1Dr0?w=3500&h=1438); 你的能量,超出你想象!---紅牛 忙...
摘要:佳佳是我朋友里面最優秀的女孩之一,事業順利,能力也十分拔尖,最近一直在安排移民加拿大的事宜。其實我已經準備了一年多,前前后后的,連我北京的房子都賣了。佳佳,就是那個非常勇敢的人。我笑了笑,也許未來她在北京要比溫哥華美麗和快樂的多。 showImg(https://segmentfault.com/img/bV1Dr0?w=3500&h=1438); 你的能量,超出你想象!---紅牛 忙...
閱讀 3140·2021-11-11 16:54
閱讀 2305·2021-09-04 16:48
閱讀 3223·2019-08-29 16:08
閱讀 644·2019-08-29 15:13
閱讀 1348·2019-08-29 15:09
閱讀 2666·2019-08-29 12:45
閱讀 1930·2019-08-29 12:12
閱讀 450·2019-08-26 18:27