前言
大家都知道在一個(gè)Node.js項(xiàng)目中,package.json幾乎是一個(gè)必須的文件,它的主要作用就是管理項(xiàng)目中所使用到的外部依賴包,同時(shí)它也是npm命令的入口文件。下面話不多說了,來一起看看詳細(xì)的介紹把。
npm 目前支持以下幾類依賴包管理:
如果你想使用哪種依賴管理,那么你可以將它放在package.json中對(duì)應(yīng)的依賴對(duì)象中,比如:
"devDependencies": { "fw2": "^0.3.2", "grunt": "^1.0.1", "webpack": "^3.6.0" }, "dependencies": { "gulp": "^3.9.1", "hello-else": "^1.0.0" }, "peerDependencies": { }, "optionalDependencies": { }, "bundledDependencies": [] 下面我們一一來看:
dependencies
應(yīng)用依賴,或者叫做業(yè)務(wù)依賴,這是我們最常用的依賴包管理對(duì)象!它用于指定應(yīng)用依賴的外部包,這些依賴是應(yīng)用發(fā)布后正常執(zhí)行時(shí)所需要的,但不包含測試時(shí)或者本地打包時(shí)所使用的包。可使用下面的命令來安裝:
npm install packageName --save
dependencies是一個(gè)簡單的JSON對(duì)象,包含包名與包版本,其中包版本可以是版本號(hào)或者URL地址。比如:
{ "dependencies" :{ "foo" : "1.0.0 - 2.9999.9999", // 指定版本范圍 "bar" : ">=1.0.2 <2.1.2", "baz" : ">1.0.2 <=2.3.4", "boo" : "2.0.1", // 指定版本 "qux" : "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0", "asd" : "http://asdf.com/asdf.tar.gz", // 指定包地址 "til" : "~1.2", // 最近可用版本 "elf" : "~1.2.3", "elf" : "^1.2.3", // 兼容版本 "two" : "2.x", // 2.1、2.2、...、2.9皆可用 "thr" : "*", // 任意版本 "thr2": "", // 任意版本 "lat" : "latest", // 當(dāng)前最新 "dyl" : "file:../dyl", // 本地地址 "xyz" : "git+ssh://git@github.com:npm/npm.git#v1.0.27", // git 地址 "fir" : "git+ssh://git@github.com:npm/npm#semver:^5.0", "wdy" : "git+https://isaacs@github.com/npm/npm.git", "xxy" : "git://github.com/npm/npm.git#v1.0.27", }}devDependencies
開發(fā)環(huán)境依賴,僅次于dependencies的使用頻率!它的對(duì)象定義和dependencies一樣,只不過它里面的包只用于開發(fā)環(huán)境,不用于生產(chǎn)環(huán)境,這些包通常是單元測試或者打包工具等,例如gulp, grunt, webpack, moca, coffee等,可使用以下命令來安裝:
npm install packageName --save-dev
舉個(gè)栗子:
{ "name": "ethopia-waza", "description": "a delightfully fruity coffee varietal", "version": "1.2.3", "devDependencies": { "coffee-script": "~1.6.3" }, "scripts": { "prepare": "coffee -o lib/ -c src/waza.coffee" }, "main": "lib/waza.js"}prepare腳本會(huì)在發(fā)布前運(yùn)行,因此使用者在編譯項(xiàng)目時(shí)不用依賴它。在開發(fā)模式下,運(yùn)行npm install, 同時(shí)也會(huì)執(zhí)行prepare腳本,開發(fā)時(shí)可以很容易的測試。
新聞熱點(diǎn)
疑難解答
圖片精選