1、package.json概述
每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)。
package.json文件内部就是一个JSON对象。
npm install命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。
2、创建package.json
手动创建
npm命令创建
$ npm init
3、一个更完整的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",
}
}
下面详细解释package.json文件的各个字段。
4、name
命名规则:
1)name必须小于等于214个字节,包括前缀名称在内(如 xxx/xxxmodule)。
2)name不能以”_”或”.”开头
3)不能含有大写字母
4)name会成为url的一部分,不能含有url非法字符
下面是官网文档的一些建议:
1)不要使用和node核心模块一样的名称
2)name中不要含有”js”和”node”。 It’s assumed that it’s js, since you’re writing a package.json file, and you can specify the engine using the “engines” field. (See below.)
3)name属性会成为模块url、命令行中的一个参数或者一个文件夹名称,任何非url安全的字符在name中都不能使用,也不能以”_”或”.”开头
4)name属性也许会被写在require()的参数中,所以最好取个简短而语义化的值。
5)创建一个模块前可以先到后边的网址查查name是否已经被占用. https://www.npmjs.com/