概述
每個(gè)項(xiàng)目的根目錄下面憨降,一般都有一個(gè)package.json
文件歹篓,定義了這個(gè)項(xiàng)目所需要的各種模塊媳否。npm install
命令可以根據(jù)這個(gè)配置文件,自動(dòng)下載所需要的模塊执俩,也就是配置項(xiàng)目所需的運(yùn)行和開發(fā)環(huán)境徐钠。
一個(gè)完整的package.json文件
{
"name": "Hello World",
"version": "0.0.1",
"author": "張三",
"description": "第一個(gè)node.js程序",
"keywords":["node.js","javascript"],
"repository": {
"type": "git",
"url": "https://path/to/url"
},
"license":"MIT",
"engines": {"node": "0.10.x"},
"bugs":{"url":"http://path/to/bug","email":"bug@example.com"},
"contributors":[{"name":"李四","email":"lisi@example.com"}],
"scripts": {
"start": "node index.js"
},
"dependencies": {
"express": "latest",
"mongoose": "~3.8.3",
"handlebars-runtime": "~1.0.12",
"express3-handlebars": "~0.5.0",
"MD5": "~1.2.0"
},
"devDependencies": {
"bower": "~1.2.8",
"grunt": "~0.4.1",
"grunt-contrib-concat": "~0.3.0",
"grunt-contrib-jshint": "~0.7.2",
"grunt-contrib-uglify": "~0.2.7",
"grunt-contrib-clean": "~0.5.0",
"browserify": "2.36.1",
"grunt-browserify": "~1.3.0",
}
}
scripts字段
Scripts
指定了運(yùn)行腳本命令的縮寫,比如你要運(yùn)行比較長(zhǎng)的webpack
或者gulp
命令的時(shí)候役首,可以直接用較簡(jiǎn)單npm run xxx
來執(zhí)行命令尝丐。
"scripts":{
"dev":"webpack --watch -xxx -xxx"
}
比如說上面,可以直接用npm run dev
衡奥,來執(zhí)行字段內(nèi)的webpack命令爹袁。
dependencies字段,devDependencies字段
dependencies
字段指定了項(xiàng)目運(yùn)行所依賴的模塊杰赛,devDependencies
指定項(xiàng)目開發(fā)所需要的模塊呢簸。在我們安裝模塊的時(shí)候,比如:
npm install express --save
npm install express --save-dev
上面代表表示單獨(dú)安裝express模塊乏屯,--save
參數(shù)表示將該模塊寫入dependencies
屬性,--save-dev
表示將該模塊寫入devDependencies
屬性根时。
main字段
main
字段指定了加載的入口文件,require('moduleName')
就會(huì)加載這個(gè)文件辰晕,這個(gè)字段的默認(rèn)值是模塊根目錄下面的index.js蛤迎。
config字段
config字段用于向環(huán)境變量輸出值。
{
"name":"foo",
"config":{"port":"8080"},
"scripts":{"start":"node server.js"}
}
然后再js腳本中就可以引用config字段的值含友。
process.env.npm_package_config_port