github的package.json内容
补充:npm的init命令生成package.json
Name
必须字段。
小提示:
- 不要在name中包含js, node字样;
- 这个名字最终会是URL的一部分,命令行的参数,目录名,所以不能以点号或下划线开头;
- 这个名字可能在require()方法中被调用,所以应该尽可能短;
Version
必须字段。
Description
可选字段,必须是字符串。npm search的时候会用到。
Keywords
可选字段,字符串数组。npm search的时候会用到。
Homepage
可选字段,没有http://等带协议前缀的URL。
Bugs
可选字段,问题追踪系统的URL或邮箱地址;npm bugs用的上。
{ "url" :"http://github.com/owner/project/issues",
"email" :"project@hostname.com"
}
License
可选字段。
如果是使用一个普遍的license,比如BSD-3-Clause或MIT,直接使用:
{ "license" : "BSD-3-Clause" }
Author, contributors
都是可选字段。author是一个人,contributors是一组人。
Author的格式如下:
{ "name" : "Barney Rubble",
"email" : "b@rubble.com",
"url" : "http://barnyrubble.tumblr.com/"
}
这种格式也可以:
"Barney Rubble <b@rubble.com> (http://barnyrubble.tumblr.com/)"
Files
可选字段,项目包含的一组文件。如果是文件夹,文件夹下的文件也会被包含。如果需要把某些文件不包含在项目中,添加一个”.npmignore”文件。这个文件和”gitignore”类似。
Main
可选字段。这个字段的值是你程序主入口模块的ID。如果其他用户需要你的包,当用户调用require()方法时,返回的就是这个模块的导出(exports)。
Bin
可选字段。很多的包都会有执行文件需要安装到PATH中去。
这个字段对应的是一个Map,每个元素对应一个{ 命令名:文件名 }。
{ "bin" : { "npm" : "./cli.js" } }
Directories
用于指示包的目录结构:
Directories.lib
指示库文件的位置。
Directories.bin
和前面的bin是一样的,但如果前面已经有bin,那么这个就无效。
除了以上两个,还有Directories.doc& Directories.man & Directories.example。
Repository
可选字段。用于指示代码存放的位置。
"repository" :
{ "type" : "git"
, "url" : "http://github.com/npm/npm.git"
}
"repository" :
{ "type" : "svn"
, "url" : "http://v8.googlecode.com/svn/trunk/"
}
Scripts
可选字段,object。Key是生命周期事件名,value是在事件点要跑的命令。参考npm-scripts。
Config
可选字段,object。
Config对象中的值在Scripts的整个周期中皆可用,专门用于给Scripts提供配置参数。
Dependencies
可选字段,指示当前包所依赖的其他包。
{ "dependencies" :
{ "foo" : "1.0.0 - 2.9999.9999"
, "bar" : ">=1.0.2 <2.1.2"
, "baz" : ">1.0.2 <=2.3.4"
, "boo" : "2.0.1"
, "qux" : "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0"
, "asd" : "http://asdf.com/asdf.tar.gz"
, "til" : "~1.2"
, "elf" : "~1.2.3"
, "two" : "2.x"
, "thr" : "3.3.x"
}
}
版本格式可以是下面任一种:
version
完全匹配>version
大于这个版本>=version
大于或等于这个版本<version
<=version
~version
非常接近这个版本^version
与当前版本兼容1.2.x
X代表任意数字,因此1.2.1, 1.2.3等都可以http://...
Unix系统下使用的tarball的URL。*
任何版本都可以""
任何版本都可以version1 - version2
等价于>=version1 <=version2
.range1 || range2
满足任意一个即可git...
Git地址user/repo
devDependencies
可选字段。如果只需要下载使用某些模块,而不下载这些模块的测试和文档框架,放在这个下面比较不错。
peerDependencies
可选字段。兼容性依赖。如果你的包是插件,适合这种方式。
bundledDependencies
可选字段。发布包时同时打包的其他依赖。
optionalDependencies
可选字段。如果你想在某些依赖即使没有找到,或则安装失败的情况下,npm都继续执行。那么这些依赖适合放在这里。
Engines
可选字段。既可以指定node版本:
{ "engines" : {"node" : ">=0.10.3 <0.12" } }
也可以指定npm版本:
{ "engines" : {"npm" : "~1.0.20" } }
engineStrick
可选字段,布尔值。如果你肯定你的程序只能在制定的engine上运行,设置为true。
Os
可选字段。指定模块可以在什么操作系统上运行:
"os" : [ "darwin","linux" ]
"os" : [ "!win32" ]
CPU
可选字段。指定CPU型号。
"cpu" : [ "x64","ia32" ]
"cpu" : [ "!arm","!mips" ]
preferGlobal
可选字段,布尔值。如果你的包是个命令行应用程序,需要全局安装,就可以设为true。
Private
可选字段,布尔值。如果private为true,npm会拒绝发布。这可以防止私有repositories不小心被发布出去。
publishConfig
可选字段。发布时使用的配置值放这。
默认值
· "scripts":{"start": "node server.js"}
如果你的包里有server.js文件,npm默认将执行: node server.js
.
· "scripts":{"preinstall":"node-gyp rebuild"}
binding.gyp,
npm默认在preinstall命令时,使用node-gyp做编译。
github的package.json内容的更多相关文章
- nodejs package.json详细解读
package.json详细内容 它是这样一个json文件(注意:json文件内是不能写注释的,复制下列内容请删除注释): JavaScript { "name": "t ...
- Nodejs课堂笔记-第二课 package.json的作用
本文由Vikings(http://www.cnblogs.com/vikings-blog/) 原创,转载请标明.谢谢! 上节课,我们打造了一下IDE工具-web storm的显示界面.至少现在回到 ...
- vue之package.json文件解析
1.package.json是什么? 什么是Node.js的模块(Module)?在Node.js中,模块是一个库或框架,也是一个Node.js项目.Node.js项目遵循模块化的架构,当我们创建了一 ...
- 11.使用 package.json
转自:http://www.runoob.com/nodejs/nodejs-express-framework.html package.json 位于模块的目录下,用于定义包的属性.接下来让我们来 ...
- package.json文件说明解释
1.package.json是什么? 什么是Node.js的模块(Module)?在Node.js中,模块是一个库或框架,也是一个Node.js项目.Node.js项目遵循模块化的架构,当我们创建了一 ...
- package.json文件内容介绍
概述 每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称.版本.许可证等元数据).npm install命令根据这个配置文件, ...
- npm package.json属性详解
概述 本文档是自己看官方文档的理解+翻译,内容是package.json配置里边的属性含义.package.json必须是一个严格的json文件,而不仅仅是js里边的一个对象.其中很多属性可以通过np ...
- 使用jsonpath解析json内容
JsonPath提供的json解析非常强大,它提供了类似正则表达式的语法,基本上可以满足所有你想要获得的json内容.下面我把官网介绍的每个表达式用代码实现,可以更直观的知道该怎么用它. 一.首先需要 ...
- Cordova CLI源码分析(二)——package.json
每个包需要在其顶层目录下包含一个package.json文件,该文件不仅是包的说明,也影响npm安装包时的配置选项 更多参数详见参考文档https://npmjs.org/doc/json.html ...
随机推荐
- Android学习笔记(二)Manifest文件节点详解
在上一篇博文中简单介绍了Manifest文件及其存放位置,本篇就来详细介绍一下Manifest文件中的节点和一些节点的基本作用,首先看一下Manifest文件最基本的结构: <manifest ...
- LaTeX手动安装宏包(package)以及生成帮助文档的整套流程
注意:版权所有,转载请注明出处. 我使用的是ctex套装,本来已经自带了许多package,但是有时候还是需要使用一些没有预装的宏包,这时就需要自己安装package了.下载package可以从CTA ...
- hdu 4717 The Moving Points(三分+计算几何)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4717 说明下为啥满足三分: 设y=f(x) (x>0)表示任意两个点的距离随时间x的增长,距离y ...
- C++ 标准时间线
Herb Sutter在他的博客上贴出了一个C++的timeline,如下所示:
- JS:九宫格抽奖转盘实例
工作需要,所以做了个抽奖转盘的插件,当然这里只做最简单的演示.可以用于取代一些flash抽奖程序. 机制说明: 1.通过定义lottery-unit来控制节点的个数及索引: 2.通过设置lottery ...
- 关于win7右下角显示“音频服务未运行”的解决方法
今天打开电脑发现右下角的的小喇叭多了个叉叉,显示“音频服务未运行”,百度了一下,解决方法还是挺多的,一下是百度到的解决方法,希望可以帮到出现这个问题的朋友们. 解决方法:(转载的) 1.Windows ...
- 手把手教你在ubuntu下创建桌面快捷方式
习惯使用windows的朋友来说创建桌面快捷方式简直就是so easy, 鼠标右键点击文件-->选择发送桌面快捷方式.就OK了.对于ubuntu下该如何创建桌面快捷方式呢?以下以创建eclips ...
- Struts 有哪些经常使用标签库
Struts 有哪些经常使用标签库 1.html标签库 2.bean标签库 3.logic标签库
- js获取键盘的keyCode-------Day42
济南今天是大雨倾盆啊,这闷热一扫而空,只是有些电闪雷鸣的,原想在公司里就完毕今天的博客记录的,只是不知道为什么怎么也登不上博客,预计是CSDN当时的server出问题了吧,好在到了晚上,这雷声小了也少 ...
- MST最小生成树及Prim普鲁姆算法
MST在前面学习了Kruskal算法,还有一种算法叫做Prim的.这两者的区别是Prim算法适合稠密图,比如说鸟巢这种几乎所有点都有相连的图.其时间复杂度为O(n^2),其时间复杂度与边的数目无关:而 ...