概述
每个项目的根目录下面,一般都有一个package.json
文件,定义了这个项目所需要的各种模块。npm install
命令可以根据这个配置文件,自动下载所需要的模块,也就是配置项目所需的运行和开发环境。
一个完整的package.json文件
{
"name": "Hello World",
"version": "0.0.1",
"author": "张三",
"description": "第一个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
指定了运行脚本命令的缩写,比如你要运行比较长的webpack
或者gulp
命令的时候,可以直接用较简单npm run xxx
来执行命令。
"scripts":{
"dev":"webpack --watch -xxx -xxx"
}
比如说上面,可以直接用npm run dev
,来执行字段内的webpack命令。
dependencies字段,devDependencies字段
dependencies
字段指定了项目运行所依赖的模块,devDependencies
指定项目开发所需要的模块。在我们安装模块的时候,比如:
npm install express --save
npm install express --save-dev
上面代表表示单独安装express模块,--save
参数表示将该模块写入dependencies
属性,--save-dev
表示将该模块写入devDependencies
属性。
main字段
main
字段指定了加载的入口文件,require('moduleName')
就会加载这个文件,这个字段的默认值是模块根目录下面的index.js。
config字段
config字段用于向环境变量输出值。
{
"name":"foo",
"config":{"port":"8080"},
"scripts":{"start":"node server.js"}
}
然后再js脚本中就可以引用config字段的值。
process.env.npm_package_config_port