之前在博客中写过一篇关于 “ node.js的安装配置 ” 的文章,里面有提到利用 gulp watch
来监听文档的变化。其中需要 package.json
文件才能实现效果,所以下面总结一下。
1. 概述
每个项目根目录下都有一个 package.json
的文件,定义了这个项目所需要的各种模块,以及项目的配置信息。 npm install
的命令可以配置这个文件使自动下载所需要的模块及项目所需要的运行开发环境,自动将package.json
中的模块安装到node-modules
文件夹下。
package.json
文件内部就是一个 JSON
对象,对象的每个成员就是对项目的设置。
{
"name" : "test",
"version" : "0.0.1",
"author" : "wjy",
/* "contributors":[{"name":"李四","email":"lisi@example.com"}], */
"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"
},
"scripts": {
"start": "node index.js",
"build": "gulp clear && gulp build && gulp minjs && gulp css"
},
"dependencies": {
"express": "latest",
"mongoose": "~3.8.3",
"handlebars-runtime": "^1.0.12",
"express3-handlebars": "0.5.0",
},
"devDependencies": {
"browser-sync": "^2.18.8",
"del": "^2.2.2",
"gulp": "^3.9.1",
"gulp-ruby-sass": "^2.1.1",
"gulp-watch": "^4.3.11"
}
}
2.字段
现在根据上面的 package.json
的文件,逐个进行详细的解释。
1)name
是项目的名称
- 命名规则不能以“_”和“.”开头,不能含有大写字母空格汉子,不能含有url非法字符,小于等于214字节。最好使用简短明了的英文,名字中不能与node和js的词。
2)version
是项目的版本号(遵循“大版本.次版本.小版本”的格式)。
上述两个属性是必须要的,否则模块无法安装。
3)author
是作者一个人, contributors
是一群人,里面有 name
、 url
、email
字段可选。
4)decription
项目描述,它会被 npm search
命令中搜索
5)keywords
关键字,它会被 npm search
命令中搜索
6)repository
指代码存放地址
7)license
指定一个许可证,让用户知道使用权限和限制
8)engines
指定工作的node版本,若不指定则表示所有版本node都可以
9)bugs
项目提交问题的url和邮箱,它会被 npm bugs
命令使用
10)scripts
指定运行脚本命令的npm命令行的缩写,比如 start
指定运行 npm run start
时所执行的命令。
11)dependencies
是项目运行所依赖的模块, devDependencies
指定项目开发所需要的模块。
12)main
是指定了加载的入口文件,这个字段的默认值是模块根目录下面的 index.js
。
其对象成员都是由模块名和对应的版本要求组成,表示依赖的模块及其版本范围。对应的版本可以加上限制:
指定版本
比如1.2.2,遵循“大版本.次版本.小版本”的格式,只安装指定版本~ + 指定版本
比如~1.2.2,表示安装1.2.x版本,不改变大版本和次版本^ + 指定版本
比如^1.2.2,表示安装1.x.x版本,不改变大版本。需要注意的是,如果大版本号为0,则插入号的行为与波浪号相同,这是因为此时处于开发阶段,即使是次要版本号变动,也可能带来程序的不兼容。latest
安装最新版本
3.node编写package.json文件
package.json
文件可以根据上面的描述进行手动编写,同时也可以通过使用 npm init
命令来自动生成。这里需要使用 git
来实现,所以要先安装 GIT
软件,这里就不介绍。如果不安装 GIT
可以用命令提示符来执行。
依次完成 name , version , authon ……
的信息填写,这个时候会在目录下自动生成一个 package.json
的文档。
文档里的内容就是刚才填写的内容。
注意:自动生成的文档里可能缺少很多东西,这个可以根据项目需要,手动添加,比如: devDependencies
等信息
有了 package.json
文件,直接使用 npm install
命令就可以自动将 package.json
文档中的的模块安装到 node-modules
文件夹下面。
注意:如果 package.json
文档中没有仓库字段,那么 node-modules
文件夹里是空的。
如果一个模块不在package.json
文件之中,可以单独安装这个模块,并使用相应的参数,将其写入package.json
文件之中。
npm install express --save
npm install express --save-dev
上面代码表示单独安装 express
模块,--save
参数表示将该模块写入 dependencies
属性,--save-dev
表示将该模块写入 devDependencies
属性。
有道笔记参考: http://note.youdao.com/noteshare?id=0ab299123923224547f834e987379569