Cordova CLI源码分析(二)——package.json
每个包需要在其顶层目录下包含一个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的更多相关文章
- Cordova CLI源码分析(三)——初始化
本部分主要涉及以下三个文件 1 cli.js 2 cordova.js 3 events.js 通过前一篇package.json的分析,可以知道,当命令行执行cordova相关命令时,首先调用mai ...
- Cordova CLI源码分析(四)——创建工程
在第一篇分析我们曾经举例,创建一个新工程, cordova create hello hellotest com.xxx.hellotest cli.js文件分析命令行参数后,会走到 else if ...
- Cordova CLI源码分析(一)——简介
本系列文章分析基于node.js的命令行工具Cordova CLI,所以如果对node.js基础不是很了解,建议参考http://nodejs.gamesys.net/node-js提供的基础教程 文 ...
- 框架-springmvc源码分析(二)
框架-springmvc源码分析(二) 参考: http://www.cnblogs.com/leftthen/p/5207787.html http://www.cnblogs.com/leftth ...
- Vue源码分析(二) : Vue实例挂载
Vue源码分析(二) : Vue实例挂载 author: @TiffanysBear 实例挂载主要是 $mount 方法的实现,在 src/platforms/web/entry-runtime-wi ...
- 多线程之美8一 AbstractQueuedSynchronizer源码分析<二>
目录 AQS的源码分析 该篇主要分析AQS的ConditionObject,是AQS的内部类,实现等待通知机制. 1.条件队列 条件队列与AQS中的同步队列有所不同,结构图如下: 两者区别: 1.链表 ...
- Fresco 源码分析(二) Fresco客户端与服务端交互(1) 解决遗留的Q1问题
4.2 Fresco客户端与服务端的交互(一) 解决Q1问题 从这篇博客开始,我们开始讨论客户端与服务端是如何交互的,这个交互的入口,我们从Q1问题入手(博客按照这样的问题入手,是因为当时我也是从这里 ...
- Tomcat源码分析二:先看看Tomcat的整体架构
Tomcat源码分析二:先看看Tomcat的整体架构 Tomcat架构图 我们先来看一张比较经典的Tomcat架构图: 从这张图中,我们可以看出Tomcat中含有Server.Service.Conn ...
- 十、Spring之BeanFactory源码分析(二)
Spring之BeanFactory源码分析(二) 前言 在前面我们简单的分析了BeanFactory的结构,ListableBeanFactory,HierarchicalBeanFactory,A ...
随机推荐
- .net程序员面试不完全指南
程序员找工作难,想要被成功聘用更难.最常见的办法是经历一次又一次的面试失败后自己琢磨出面试技巧,当然也可以花钱到一些培训机构去接受专业的书面简历和模拟面试的指导.这些方法可能都会奏效,但是却并不是时间 ...
- IT行业,需要经常锻炼,开篇从本钱开始
今天下完班,和部门兄弟一起去打了两小时乒乓球,大汗淋漓,很痛快. 败给了两个高手,感觉年龄大了些,灵活性没有以前那么好了. 想想以前读书时,在整个学校都叱诧风云,如今即败给了几个老手,唉. 看来以后要 ...
- ALV调用的几个标准函数
ALV的调用主要由以下几个标准函数实现,所有函数的输入输出参数必须大写,否则系统会出现异常中止,相关函数如下: 1)REUSE_ALV_FIENDCATALOG_MERGE:根据内表结构返回FIELD ...
- Xamarin 后台持续定位与提示
IOS后台持续运行对于c#程序员不懂得ios后台机制的是存在一定困扰的.特别是ios9过后对后台和安全进行了更严格的限制 好了废话不多说 一 设置info.plist权限信息 参考: 后台模式:htt ...
- CentOS5.6下安装Oracle10G软件 【保留报错经验】
CentOS5.6下安装Oracle10G ****************************************************************************** ...
- mysql update改动多条数据
通常情况下,我们会使用下面SQL语句来更新字段值: 复制代码代码例如以下: UPDATE mytable SET myfield='value' WHERE other_field='other_va ...
- Delphi引用C对象文件
C语言应用非常广泛,并在世界各地拥有大量的代码库.这些代码库与Delphi的可比性较小,因此如果我们无需转换为Delphi代码而可以直接使用这些库的部分代码就完美了.幸运的是,Delphi允许连接到C ...
- PHP+lghttpd + postgresql 环境搭建
PHP+lghttpd + postgresql 环境搭建 Linux 下PHP环境搭建 安装环境:PHP+lghttpd + postgresql 1:yum install lighttpd 红旗 ...
- 使用git微命令深入理解git工作机制
首先.这篇不是真正意义上的翻译,所以大家在看的时候不要找相应的英文文章相应着看.这篇文章之所以归类为翻译.是由于最開始有一篇英文文章让我对git内部机制有了清楚的认识,它能够说是我git的启蒙老师吧. ...
- Java线程的生命周期(转)
Java线程的生命周期 一个线程的产生是从我们调用了start方法开始进入Runnable状态,即可以被调度运行状态,并没有真正开始运行,调度器可以将CPU分配给它,使线程进入Running状态,真正 ...