欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一文搞懂npm?install?意義

 更新時間:2022年12月01日 10:50:25   作者:Never?Yu  
我們在安裝依賴包的時候,不需要過多的去糾結是使用?-S?還是?-D?呢??隨便安裝到?dependencies?或者?devDependencies?里都行,反正?npm?install的時候,都會安裝dependencies?和?devDependencies依賴,今天通過本文學習npm?install意義,感興趣的朋友跟隨小編一起看看吧

【當我們敲 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 <packageName> --force

npm install 的時候會安裝哪個里面的依賴?dependencies 還是 devDependencies

npm install 默認會安裝 dependencies 字段和 devDependencies 字段中的所有模塊】。 如果軟件包具有 package-lock 或 shrinkwrap 文件,則依賴項的安裝將由此驅動,如果兩個文件都存在,則 npm-shrinkwrap.json 優(yōu)先。 請參閱 package-lock.jsonnpm-shrinkwrap。

【ok,那么也就是說,當我們在拿到一個項目的時候,使用 npm install 是會安裝 dependencies 和 devDependencies 里所有的依賴包的?!?/p>

那么是否意味著,我們在安裝依賴包的時候,不需要過多的去糾結是使用 -S 還是 -D 呢 ?隨便安裝到 dependencies 或者 devDependencies 里都行,反正 npm install 的時候,都會安裝 dependencies 和 devDependencies 里面的依賴。

其實不然!

如果使用 --production 參數,可以只安裝 dependencies 字段的模塊。

$ npm install --production
# 或者
$ NODE_ENV=production npm install

【所以,我們做好 dependencies 和 devDependencies 的區(qū)分的話,在使用 npm install --production 的時候,還是有區(qū)別的?!?/p>

不過,感覺這個 npm install --production 的使用場景不是很多。我好像沒怎么用,可能以后會用到吧。

內心os:既然 npm install --production 我用不到,那我在安裝依賴包的時候,還是隨意吧,放到 dependencies 或者 devDependencies 都無所謂,反正 npm install 的時候會把 dependencies 和 devDependencies 里面的依賴包都安裝下來。哈哈~~,隨意使用 -S 或者 -D 咯~

錯!
錯??!
錯?。?!
這樣想就錯了。dependencies 和 devDependencies 還是有明顯區(qū)別的。我們接著來看。

我們在安裝依賴包的時候,要如何區(qū)分是安裝到 dependencies 還是 devDependencies 中呢?

dependencies 依賴

這個可以說是我們 npm 核心一項內容,依賴管理,這個對象里面的內容就是我們這個項目所依賴的 js 模塊包。下面這段代碼表示我們依賴了 markdown-it 這個包,版本是 ^8.1.0 ,代表最小依賴版本是 8.1.0 ,如果這個包有更新,那么當我們使用 npm install 命令的時候,npm 會幫我們下載最新的包。當別人引用我們這個包的時候,包內的依賴包也會被下載下來。

"dependencies": {
    "markdown-it": "^8.1.0"
}

devDependencies 開發(fā)依賴

【在我們開發(fā)的時候會用到的一些包,只是在開發(fā)環(huán)境中需要用到,但是在別人引用我們包的時候,不會用到這些內容,放在 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 就可以很方便的下載好這個模塊所需要的包。

結論:當你在開發(fā)一個 npm 包的時候,還是要好好管理你的 dependencies 依賴 和 devDependencies 依賴。 之前有個同事寫了一個 loading 組件,發(fā)到 npm 上面去了,他跟我說簡單好用,我就用了。但是我發(fā)現他這么小的一個組件,為什么包這么大。一看,原來他寫這個 npm 包的時候,所有的依賴都放到 dependencies 里面了(包括 gulp,browser-asyc,壓縮代碼的,express…等等一些他開發(fā)時用的工具)。

相關文章

  • 淺談Koa2框架利用CORS完成跨域ajax請求

    淺談Koa2框架利用CORS完成跨域ajax請求

    這篇文章主要介紹了淺談Koa2框架利用CORS完成跨域ajax請求,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • 簡單了解node npm cnpm的具體使用方法

    簡單了解node npm cnpm的具體使用方法

    這篇文章主要介紹了簡單了解node npm cnpm的具體使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-02-02
  • Node.js 實現遠程桌面監(jiān)控的方法步驟

    Node.js 實現遠程桌面監(jiān)控的方法步驟

    這篇文章主要介紹了Node.js 實現遠程桌面監(jiān)控的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • Node.js API詳解之 module模塊用法實例分析

    Node.js API詳解之 module模塊用法實例分析

    這篇文章主要介紹了Node.js API詳解之 module模塊用法,結合實例形式分析了Node.js API中module模塊基本功能、原理、用法及操作注意事項,需要的朋友可以參考下
    2020-05-05
  • Node 使用express-http-proxy 做api網關的實現

    Node 使用express-http-proxy 做api網關的實現

    這篇文章主要介紹了Node 使用express-http-proxy 做api網關的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • Nodejs環(huán)境Eggjs加簽驗簽示例代碼

    Nodejs環(huán)境Eggjs加簽驗簽示例代碼

    這篇文章主要介紹了Nodejs環(huán)境Eggjs加簽驗簽示例代碼,文章開頭給大家介紹了加簽和驗簽的基本概念,本文結合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • 一行命令搞定node.js 版本升級

    一行命令搞定node.js 版本升級

    今天,又發(fā)現一個超級簡單的升級node.js的方法。一行命令搞定,省去了重新編譯安裝的過程。
    2014-07-07
  • Node8中AsyncHooks異步生命周期

    Node8中AsyncHooks異步生命周期

    這篇文章主要介紹了Node8中AsyncHooks異步生命周期,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • 淺談node模塊與npm包管理工具

    淺談node模塊與npm包管理工具

    這篇文章主要介紹了node模塊與npm包管理工具,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • nodejs模塊學習之connect解析

    nodejs模塊學習之connect解析

    這篇文章主要介紹了nodejs模塊學習之connect解析,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07

最新評論