package.json
来源:互联网 发布:网络信息安全法律法规 编辑:程序博客网 时间:2024/04/28 18:44
每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)。npm install 命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。
package.json文件可以手工编写,也可以使用npm init命令自动生成。
注意:npm init 时,用户需回答一些问题,然后在当前目录生成一个基本的package.json文件。所有问题之中,只有项目名称(name)和项目版本(version)是必填的,其他都是选填的。
一、scripts
scripts指定了运行脚本命令的npm命令行缩写,比如start指定了运行npm run start时,所要执行的命令。下面的设置指定了npm run preinstall、npm run postinstall、npm run start、npm run test时,所要执行的命令。
"scripts": { "preinstall": "echo here it comes!", "postinstall": "echo there it goes!", "start": "node index.js", "test": "tap test/*.js"}
二、dependencies,devDependencies
dependencies和devDependencies两项,分别指定了项目运行所依赖的模块、项目开发所需要的模块。npm install express --savenpm install express --save-dev--save参数表示将该模块写入dependencies属性,
--save-dev表示将该模块写入devDependencies属性。
三、bin
bin项用来指定各个内部命令对应的可执行文件的位置。"bin": { "someTool": "./bin/someTool.js"}上面代码指定,someTool 命令对应的可执行文件为 bin 子目录下的 someTool.js。Npm会寻找这个文件,在node_modules/.bin/目录下建立符号链接。在上面的例子中,someTool.js会建立符号链接npm_modules/.bin/someTool。由于node_modules/.bin/目录会在运行时加入系统的PATH变量,因此在运行npm时,就可以不带路径,直接通过命令来调用这些脚本。
四、config
config字段用于向环境变量输出值。{ "name" : "foo", "config" : { "port" : "8080" }, "scripts" : { "start" : "node server.js" }}然后,在server.js脚本就可以引用config字段的值。
http.createServer(...).listen(process.env.npm_package_config_port)用户可以改变这个值。
$ npm config set foo:port 80
五、常用字段说明及示例
只用name和version必须的!!!1. name:项目名,npm install依赖此名称!
注意:(1)name中不能包含汉子、空格、不能以点号或下划线开头;
(2)不要在name中包含js, node字样;
(3)这个名字可能在require()方法中被调用,所以应该尽可能短;
2. version:项目版本
注意:npm采用”语义版本“管理软件包。所谓语义版本,就是指版本号为a.b.c的形式,其中a是大版本号,b是小版本号,c是补丁号。3. description:项目描述,npm search会用到
4. keywords:关键字,npm search会用到
5. homepage:项目官网的url
6. bugs:项目的提交问题的url和(或)邮件地址
{ "url" : "http://github.com/owner/project/issues", "email" : "project@hostname.com"}
7. License:如果是使用一个普遍的license,比如BSD-3-Clause或MIT,直接使用:
{ "license" : "BSD-3-Clause" }
8. Author, contributors:author是一个人,contributors是一组人
{ "name" : "Li Gang", "email" : "ligang_WEB@163.com", "url" : "http://blog.csdn.net/ligang2585116/"}
8. files:项目中的文件的数组,以提供一个.npmignore文件,让即使被包含在files字段中得文件被留下。
9. repository:码存放的地方
10. Dependencies:当前包所依赖的其他包。
注意:请不要将测试或过渡性的依赖放在dependencies中11. devDependencies:开发所需依赖的其他包。
注意:如果有人要用你的模块,但他们可能不需要你开发所使用的外部测试或者文档框架。12. engines:指定工作的node的版本
{ "engines" : { "node" : ">=0.10.3 <0.12" } }
13. private:设置为true时,npm就不会发布它
注意:这是一个防止意外发布私有库的方式。如果你要确定给定的包是只发布在特定registry(如内部registry)的,用publishConfig hash的描述来重写registry的publish-time配置参数。14. publishConfig:发布时使用的配置值,只有“tag”和“registry”与发布的意图有关。
完整的字段说明:http://www.mujiang.info/translation/npmjs/files/package.json.html
[转载请标明出处:http://blog.csdn.net/ligang2585116]
5 0
- package.json
- package.json
- package.json
- package.json
- package.json
- package.json
- package.json
- package.json
- package.json
- package.json
- package.json
- package.json version
- package.json 字段解析
- 创建package.json文件
- package.json字段说明
- package.json配置
- package.json 配置说明
- package.json 字段大全
- jQuery基础----12jQuery HTML-设置
- uva 11491 - Erasing and Winning
- jQuery基础----13jQuery HTML-添加元素
- CSS 3基础(二)——边框
- POJ 2503 Babelfish(字典树)
- package.json
- jQuery基础----14jQuery HTML-删除元素
- SpringMVC+Mybatis集成开发,环境搭建。
- SQL语言逻辑执行顺序
- jQuery基础----15jQuery CSS-jQuery CSS方法
- openstack通过Network Namespace和iptables实现租户私有网络互访和L3路由功能
- 三 HDU 2097
- 2015阿里巴巴校招内推面试过程(已经拿到offer)
- UIImage获取本地图片的方式对内存的影响