每个包需要在其顶层目录下包含一个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. 两张图解读Java异常与断言

    两张图解读Java异常与断言                                 --转载请注明出处:coder-pig 本节引言: 前天公布的"七张图解析Java多线程&quo ...

  2. android中保存Bitmap图片到指定文件夹中的方法

    /** 保存方法 */  public void saveBitmap() {   Log.e(TAG, "保存图片");   File f = new File("/s ...

  3. 为数据元素DATA Element分配搜索帮助

    搜索帮助可以分配给数据元素,程序中可以直接参照该数据元素具体如下: 1. 2. 程序中使用. PARAMETERS:p_vbeln TYPE ZVBELN_01. 3. 效果:

  4. Selenium Webdriver ie 浏览器

    webDriver 在测试ie 的时候会遇到很多的问题,记录下: 1.需要ie的driver驱动 需要下载 IEDriverServer.exe 并把这个驱动放在系统ie 的文件夹下 C:\Progr ...

  5. mfc控件与其对应的对象的关联方法

    对话框的控件与其对应类的对象相关联:(两种方法) (1)      通过CWnd::DoDataExchange函数进行关联: 用VC++6.0的MFC ClassWizard中的Member Var ...

  6. Maven插件之portable-config-maven-plugin(不同环境打包)

    在大型的项目组中,分不同的开发环境,测试环境,生产环境(说白了就是配置文件不同,或者数据源,或者服务器,或者数据库等);问题来了,如何使用Maven针对不同的环境来打包呢? Maven提供了Profi ...

  7. Tomcat启动会遇到的问题部分解决方案

    Tomcat的启动不一定会非常的顺利,这可以有多种原因 一.Tomcat是由Java所编写的,因此Tomcat的使用需要JDK的支持,如果没有配置环境变量,Tomcat当然无法启动,最明显的特征就是点 ...

  8. Appium 出现 > error: com.test/.activity1 never started. Current: com.test/.activity2

    在apium 运行的时候,会出现提示 activity 没有启动,当前是 activity 出现原因: 出现这种情况是因为 launch activity 再启动 app 之后 无法找到,变成了app ...

  9. jfinal常见问题

    2014年的时候,学过一段时间的JFinal,当时主要是了解这个框架,研究了下源码,看懂了部分.今天,2015年2月7日,弄了一下午的JFinal,把未来要上线的一个官网项目,迁移到了JFinal.下 ...

  10. clearcase 中一些概念和操作

    clearcase 中一些概念和操作 视图 常用命令 ClearCase 安装和使用的一些FAQ 参考 ClearCase具体的说是做配置管理的工具,只是SCM管理工具其中的一种.是RATIONAL公 ...