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.xX代表任意数字,因此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做编译。
package.json 字段全解析的更多相关文章
- package.json 字段全解析 share
Name 必须字段. 小提示: 不要在name中包含js, node字样: 这个名字最终会是URL的一部分,命令行的参数,目录名,所以不能以点号或下划线开头: 这个名字可能在require()方法中被 ...
- [转]Node.JS package.json 字段全解析
Name 必须字段. 小提示: 不要在name中包含js, node字样: 这个名字最终会是URL的一部分,命令行的参数,目录名,所以不能以点号或下划线开头: 这个名字可能在require()方法中被 ...
- npm package.json字段全解
name 在package.json中最重要的就是name和version字段.他们都是必须的,如果没有就无法install.name和version一起组成的标识在假设中是唯一的.改变包应该同时改变 ...
- package.json字段全解
原文:http://blog.csdn.net/woxueliuyun/article/details/39294375 Name 必须字段. 小提示: 不要在name中包含js, node字样: 这 ...
- package.json字段全解(转)
Name 必须字段. 小提示: 不要在name中包含js, node字样: 这个名字最终会是URL的一部分,命令行的参数,目录名,所以不能以点号或下划线开头: 这个名字可能在require()方法中被 ...
- package.json字段简要解析
name 必填 应用名称 version 必填 应用版本 description 选填 应用描述,多用于搜索,在npm search 时可以用到 keywords 选填 应用关键字,也多用于搜索 sc ...
- npm的package.json字段含义中文文档
简介 本文档有所有package.json中必要的配置.它必须是真正的json,而不是js对象. 本文档中描述的很多行为都受npm-config(7)的影响. 默认值 npm会根据包内容设置一些默认值 ...
- package.json字段分析
分析1.必须在包的顶层目录下2.二进制文件应该在bin目录下3.javascipt在lib目录下4.文档在doc目录下 package.json字段分析 name:包的名称,必须是唯一的,由小写英文字 ...
- package.json 字段说明
以vue的package.json为例: { // 名称 "name": "vue", // 版本 "version": "2.6 ...
随机推荐
- jQuery验证控件jquery.validate.js使用说明
官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation jQuery plugin: Validation 使用说明 转载 ...
- 《UNIX环境高级编程第三版》apue.h等源码文件的编译安装
操作系统:Ubuntu 12/14 1.下载书中的源代码:点击下载 2.编译 tar -zxvf *.tar.gz cd ./apue.3e make 报错: can,t find -lbsd 解决办 ...
- PHP文件包含漏洞攻防实战(allow_url_fopen、open_basedir)
摘要 PHP是一种非常流行的Web开发语言,互联网上的许多Web应用都是利用PHP开发的.而在利用PHP开发的Web应用中,PHP文件包含漏洞是一种常见的漏洞.利用PHP文件包含漏洞入侵网站也是主流的 ...
- 妈妈再也不用担心别人问我是否真正用过redis了
1. Memcache与Redis的区别 1.1. 存储方式不同 1.2. 数据支持类型 1.3. 使用底层模型不同 2. Redis支持的数据类型 3. Redis的回收策略 4. Redis小命令 ...
- HDU 4946 Area of Mushroom(构造凸包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4946 题目大意:在一个平面上有n个点p1,p2,p3,p4....pn,每个点可以以v的速度在平面上移 ...
- poj 1170
很高兴,这道题刚编译成功提交就AC了. 简单的多重背包,标算估计是5.6维动规.其实可以通过6进制压成一维.判定是一个特价方式是否可行只需自己推一下就行了,很简单(对应位上的数目标不小于特价所需条件) ...
- jstl param url redirect import
import标签 import标签用来导入其他页面 属性: * url :引入页面的路径 * context :工程名 * var :将引入的页面保存到一个变量中 * scope :保存到一个作用域中 ...
- linux下动态链接库解决方案(二)
以前写过一个关于linux下用c++写动态链接库无法通过的解决方案,今天看到<linux C程序设计-王者归来>这本书,书中有个更容易的解决方案,特此记录下来 书中使用的是c语言,我改用c ...
- JAVA SSM 示例代码
SSM 即spring+spring mvc+mybatis,开发工具IDEA 1.先看下项目结构如图: 2.主要配置文件 spring-mvc.xml <?xml version=" ...
- JavaScript高级程序设计学习笔记--DOM
DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序接口). Document类型 文档的子节点 虽然DOM标准规定Document节点的子节点可以是DocumentType,Ele ...