npm安裝package.json時(shí) 直接轉(zhuǎn)到當(dāng)前項(xiàng)目目錄下用命令npm install 或npm install --save-dev安裝即可,自動(dòng)將package.json中的模塊安裝到node-modules文件夾下。
package.json就是管理你本地安裝的npm包,用于定義了這個(gè)項(xiàng)目所需要的各種模塊,以及項(xiàng)目的配置信息(比如名稱、版本、許可證等元數(shù)據(jù))。一個(gè)package.json文件可以做如下事情:
展示項(xiàng)目所依賴的npm包
允許你指定一個(gè)包的版本[范圍]
讓你建立起穩(wěn)定,意味著你可以更好的與其他開發(fā)者共享
注意:npm init 時(shí),用戶需回答一些問題,然后在當(dāng)前目錄生成一個(gè)基本的package.json文件。所有問題之中,只有項(xiàng)目名稱(name)和項(xiàng)目版本(version)是必填的,其他都是選填的。
包的名稱,必須是唯一的,由小寫英文字母、數(shù)字和下劃線組成,不能包含空格
項(xiàng)目版本號,符合語義化版本識別規(guī)范的版本字符串
項(xiàng)目描述,項(xiàng)目的簡要說明
{Array}關(guān)鍵詞數(shù)組,便于用戶搜索到我們的項(xiàng)目。
用于定義項(xiàng)目url主頁
提交bug的地址,項(xiàng)目問題反饋的Url或email配置,如:
{ “url” : “https://github.com/issues“, “email” : “project@hostname.com” }
項(xiàng)目許可證,讓使用者知道是如何被允許使用此項(xiàng)目。默認(rèn)是”ISC”
定義該項(xiàng)目的作者。
代表npm是否發(fā)布該項(xiàng)目。如果設(shè)置為true, 那么npm會拒絕發(fā)布它
指定了運(yùn)行腳本命令的npm命令行縮寫,比如start指定了運(yùn)行npm run start時(shí),所要執(zhí)行的命令。下面的設(shè)置指定了npm run dev、npm run bulid、npm run unit、npm run test、npm run lint時(shí),所要執(zhí)行的命令。如下:
"scripts": { "dev": "node build/dev-server.js", "build": "node build/build.js", "unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run", "test": "npm run unit", "lint": "eslint --ext .js,.vue src test/unit/specs" },
dependencies和devDependencies兩項(xiàng),分別指定了項(xiàng)目運(yùn)行所依賴的模塊、項(xiàng)目開發(fā)所需要的模塊。它們都指向一個(gè)對象,該對象的各個(gè)成員,分別由模塊名和對應(yīng)的版本要去組成,表示依賴的模塊及其版本范圍
--save參數(shù)表示將該模塊寫入dependencies屬性,
--save-dev表示將該模塊寫入devDependencies屬性。
如下:
"dependencies": { "vue": "^2.2.2", "vue-router": "^2.2.0" }, "devDependencies": { "autoprefixer": "^6.7.2", "babel-core": "^6.22.1", "babel-eslint": "^7.1.1", "babel-loader": "^6.2.10", "babel-plugin-transform-runtime": "^6.22.0", "babel-preset-env": "^1.2.1", "babel-preset-stage-2": "^6.22.0", "babel-register": "^6.22.0", "chalk": "^1.1.3",}
config字段用于向環(huán)境變量輸出值。
{ "name" : "foo", "config" : { "port" : "8080" }, "scripts" : { "start" : "node server.js" } }
pixabayhttps://www.wode007.com/sites/73237.html wallhavenhttps://www.wode007.com/sites/73236.html
指明了該項(xiàng)目所需要的node.js版本
"engines": { "node": ">= 4.0.0", "npm": ">= 3.0.0" },
許多包有一個(gè)或多個(gè)可執(zhí)行文件希望被安裝到系統(tǒng)路徑。在npm下要這么做非常容易(事實(shí)上,npm就是這么運(yùn)行的)。
這需要在你的package.json中提供一個(gè)bin字段,它是一個(gè)命令名和本地文件名的映射。在安裝時(shí),如果是全局安裝,npm將會使用符號鏈接把這些文件鏈接到prefix/bin,如果是本地安裝,會鏈接到./node_modules/.bin/。
比如,要使用myapp作為命令時(shí)可以這么做:
{ "bin" : { "myapp" : "./cli.js" } }
這么一來,當(dāng)你安裝myapp,npm會從cli.js文件創(chuàng)建一個(gè)到/usr/local/bin/myapp的符號鏈接(這使你可以直接在命令行執(zhí)行myapp)。