每个包需要在其顶层目录下包含一个package.json文件,该文件不仅是包的说明,也影响npm安装包时的配置选项

更多参数详见参考文档https://npmjs.org/doc/json.html

{
"name": "cordova",
"version": "3.0.4",
"preferGlobal": "true",//如果安装包是作为命令行应用程序,应该全局模式安装,如果用户使用本地模式安装,则警告提醒
"description": "Cordova command line interface tool",
"main": "cordova",
//表示Node.js在调用某个模块的时候,将寻找main指向的路径作为模块的接口,在这里Node将寻找同目录下的cordova文件,并尝试从它那加载模块;
//如果没有cordova,Node还是会尝试寻找cordova.js或者cordova.node作为包的接口。
//相当于这是初始化函数,返回此文件中export的对象内容
"engines":{
"node":">=0.9.9"
//指定使用node的版本
},
"engineStrict":true,
//如果确定模块只能能在engines 参数指定的版本正常工作,则设置此参数
"bin": {
  "cordova": "./bin/cordova"
  //用户在命令行输入时,解析参数执行此文件

cordova文件

#!/usr/bin/env node
var CLI = require('../src/cli');
new CLI(process.argv);
  },
"scripts": {
  "test": "jasmine-node --color spec"
//存储一些默认运行命令脚本信息
  //cordova test 执行 jasmine-node --color spec
},
"repository": {
"type": "git",
  "url": "https://git-wip-us.apache.org/repos/asf/cordova-cli.git"
  // 存储位置
},
"bugs":{
"url" : "https://issues.apache.org/jira/browse/CB",
"email" : "dev@cordova.apache.org"
},
"keywords": [
"cordova",
"client",
"cli"
],
"dependencies": {
"colors":">=0.6.0",
"elementtree":"0.1.3",
"plugman":"0.10.0",
"plist":"0.4.x",
"xcode":"0.5.1",
"express":"3.0.0",
"shelljs":"0.1.2",
"ncallbacks":"1.0.0",
"request":"2.22.0",
"ripple-emulator":"0.9.18",
"semver":"1.1.0",
"glob":"3.2.x",
"follow-redirects":"0.0.x",
"prompt":"0.2.7",
"tar":"0.1.x",
"open": "0.0.3",
"npm":"1.3.x",
"optimist":"0.6.0"
},
/*依赖模块列表
version 版本号必须精确匹配
>version 必须大于当前版本号
>=version 必须大于等于
<version 小于
<=version 小于等于
~1.2.3 := >=1.2.3-0 <1.3.0-0 1.3.0-beta 不满足 ~1.2.3支持条件
~1.2 := >=1.2.0-0 <1.3.0-0 以1.2开始的版本
1.2.x := >=1.2.0-0 <1.3.0-0 以1.2开始的版本
~1 := >=1.0.0-0 <2.0.0-0 以1开始的版本
1.x := >=1.0.0-0 <2.0.0-0 以1开始的版本
1.2.x 1.2.0, 1.2.1,等,不超过 1.3.0
http://... 见链接地址
* 匹配任意版本
"" 匹配任意版本
version1 - version2 等价于 >=version1 <=version2.
range1 || range2 range1 或 range2均可
git... 见git地址
user/repo见 'GitHub ' 地址
*/
"devDependencies": {
"jasmine-node":"1.8.x"
},
/ /开发阶段使用的模块,在用户使用时不需要依赖的模块
"author": "Anis Kadri",
//开发者
"contributors": [
{"name": "Brian LeRoux","email": "b@brian.io"},
{"name": "Fil Maj", "email": "maj.fil@gmail.com"},
{"name": "Mike Reinstein", "email":"reinstein.mike@gmail.com"},
{"name": "Darry Pogue", "email":"darryl@dpogue.ca"},
{"name": "Michael Brooks", "email":"michael@michaelbrooks.ca"},
{"name": "Braden Shepherdson", "email":"braden@chromium.org"},
{"name": "Gord Tanner", "email":"gtanner@gmail.com"},
{"name": "Tim Kim", "email": "timk@adobe.com"},
{"name": "Benn Mapes", "email": "Benn.Mapes@gmail.com"},
{"name": "Michael Wolf", "email": "Michael.Wolf@Cynergy.com"},
{"name": "Andrew Grieve", "email": "agrieve@chromium.org"},
{"name": "Bryan Higgins", "email": "bhiggins@blackberry.com"},
{"name": "Don Coleman", "email": "dcoleman@chariotsolutions.com"},
{"name": "Germano Gabbianelli", "email": "tyron.mx@gmail.com"},
{"name": "Ian Clelland", "email": "iclelland@chromium.org"},
{"name": "Lucas Holmqust", "email": "lholmqui@redhat.com"},
{"name": "Matt LeGrand", "email": "mlegrand@gmail.com"},
{"name": "Michal Mocny", "email": "mmocny@gmail.com"},
{"name": "Sam Breed", "email": "sam@quickleft.com"},
{"name": "Tommy-Carlos Williams", "email": "tommy@devgeeks.org"},
  {"name": "Rubén Norte", "email": "rubennorte@gmail.com"}
  //贡献者人员信息
],
"license": "Apache version 2.0"
}

Cordova CLI源码分析(二)——package.json的更多相关文章

  1. Cordova CLI源码分析(三)——初始化

    本部分主要涉及以下三个文件 1 cli.js 2 cordova.js 3 events.js 通过前一篇package.json的分析,可以知道,当命令行执行cordova相关命令时,首先调用mai ...

  2. Cordova CLI源码分析(四)——创建工程

    在第一篇分析我们曾经举例,创建一个新工程, cordova create hello hellotest com.xxx.hellotest cli.js文件分析命令行参数后,会走到 else if  ...

  3. Cordova CLI源码分析(一)——简介

    本系列文章分析基于node.js的命令行工具Cordova CLI,所以如果对node.js基础不是很了解,建议参考http://nodejs.gamesys.net/node-js提供的基础教程 文 ...

  4. 框架-springmvc源码分析(二)

    框架-springmvc源码分析(二) 参考: http://www.cnblogs.com/leftthen/p/5207787.html http://www.cnblogs.com/leftth ...

  5. Vue源码分析(二) : Vue实例挂载

    Vue源码分析(二) : Vue实例挂载 author: @TiffanysBear 实例挂载主要是 $mount 方法的实现,在 src/platforms/web/entry-runtime-wi ...

  6. 多线程之美8一 AbstractQueuedSynchronizer源码分析<二>

    目录 AQS的源码分析 该篇主要分析AQS的ConditionObject,是AQS的内部类,实现等待通知机制. 1.条件队列 条件队列与AQS中的同步队列有所不同,结构图如下: 两者区别: 1.链表 ...

  7. Fresco 源码分析(二) Fresco客户端与服务端交互(1) 解决遗留的Q1问题

    4.2 Fresco客户端与服务端的交互(一) 解决Q1问题 从这篇博客开始,我们开始讨论客户端与服务端是如何交互的,这个交互的入口,我们从Q1问题入手(博客按照这样的问题入手,是因为当时我也是从这里 ...

  8. Tomcat源码分析二:先看看Tomcat的整体架构

    Tomcat源码分析二:先看看Tomcat的整体架构 Tomcat架构图 我们先来看一张比较经典的Tomcat架构图: 从这张图中,我们可以看出Tomcat中含有Server.Service.Conn ...

  9. 十、Spring之BeanFactory源码分析(二)

    Spring之BeanFactory源码分析(二) 前言 在前面我们简单的分析了BeanFactory的结构,ListableBeanFactory,HierarchicalBeanFactory,A ...

随机推荐

  1. asp.net检查验证字符串是否为纯数字方法小结

    原文  asp.net检查验证字符串是否为纯数字方法小结 在asp.net中验证字符串是不是为数字我们没有像php中那么多丰富的函数来直接使用,这里我整理了一些比较实例的验证字符串是否为纯数字方法代码 ...

  2. mojo 默认启用utf-8

    [root@dr-mysql01 ~]# cat f1.pl use Encode; print "验证111\n"; my $d=encode_utf8('验证'); print ...

  3. SRM 624 Building Heights DivI 解读

    几乎相同的一标题.欲了解更多请参阅:http://community.topcoder.com/stat?c=problem_statement&pm=13211&rd=15857 思 ...

  4. 黑客白皮书:如何成为一名黑客(附FAQ)

    内容一览 为什么会有这份文档? 什么是黑客? 黑客应有的态度 黑客的基本技能 黑客文化中的地位 黑客和书呆子(Nerd)的联系 风格的意义 其它资源 FAQ(常问问题解答)   作为Jargon Fi ...

  5. 多字符集(ANSI)和UNICODE及字符串处理方式准则

    在我们编写程序的时候,使用最多的是字符串的处理,而ANSI和UNICODE的相互转换经常搞的我们头晕眼乱. 应该说UNICODE是一种比较好的编码方式,在我们的程序中应该尽量使用UNICODE编码方式 ...

  6. UVA 534 - Frogger(kruskal扩展)

    UVA 534 - Frogger 题目链接 题意:给定一些点.如今要求一条路径从第一个点能跳到第二个点,而且这个路径上的最大距离是最小的 思路:利用kruskal算法,每次加最小权值的边进去,推断一 ...

  7. dtach-linux-分离功能-小工具 - 点点滴滴 Linux | 点点滴滴 Linux

    dtach-linux-分离功能-小工具 - 点点滴滴 Linux | 点点滴滴 Linux dtach-linux-分离功能-小工具 2013年05月20日 ⁄ Linux工具 ⁄ 共 1775字 ...

  8. Python使用cx_Oracle模块连接操作Oracle数据库

    1. 简单介绍 cx_Oracle 是一个用来连接并操作 Oracle 数据库的 Python 扩展模块, 支持包含 Oracle 9.2 10.2 以及 11.1 等版本号 2.安装 最好是去官网h ...

  9. ZOJ3805:Machine

    In a typical assembly line, machines are connected one by one. The first machine's output product wi ...

  10. Android 实现环形进度按钮circular-progress-button

    ※效果 ※简单介绍 显示运行进度的button,可用于数据的提交.系统登录等.动画效果非常棒.提高用户体验. ※使用说明 Declare button inside your layout XML f ...