必須字段。node
小提示:linux
不要在name中包含js, node字樣;git
這個名字最終會是URL的一部分,命令行的參數,目錄名,因此不能以點號或下劃線開頭;github
這個名字可能在require()方法中被調用,因此應該儘量短;npm
必須字段。數組
可選字段,必須是字符串。npm search的時候會用到。框架
可選字段,字符串數組。npm search的時候會用到。svn
可選字段,沒有http://等帶協議前綴的URL。測試
可選字段,問題追蹤系統的URL或郵箱地址;npm bugs用的上。ui
{ "url" :"http://github.com/owner/project/issues",
"email" :"project@hostname.com"
}
可選字段。
若是是使用一個廣泛的license,好比BSD-3-Clause或MIT,直接使用:
{ "license" : "BSD-3-Clause" }
都是可選字段。author是一我的,contributors是一組人。
Author的格式以下:
{ "name" : "Barney Rubble",
"email" : "b@rubble.com",
"url" : "http://barnyrubble.tumblr.com/"
}
這種格式也能夠:
"Barney Rubble <b@rubble.com> (http://barnyrubble.tumblr.com/)"
可選字段,項目包含的一組文件。若是是文件夾,文件夾下的文件也會被包含。若是須要把某些文件不包含在項目中,添加一個」.npmignore」文件。這個文件和」gitignore」相似。
可選字段。這個字段的值是你程序主入口模塊的ID。若是其餘用戶須要你的包,當用戶調用require()方法時,返回的就是這個模塊的導出(exports)。
可選字段。不少的包都會有執行文件須要安裝到PATH中去。
這個字段對應的是一個Map,每一個元素對應一個{ 命令名:文件名 }。
{ "bin" : { "npm" : "./cli.js" } }
用於指示包的目錄結構:
指示庫文件的位置。
和前面的bin是同樣的,但若是前面已經有bin,那麼這個就無效。
除了以上兩個,還有Directories.doc& Directories.man & Directories.example。
可選字段。用於指示代碼存放的位置。
"repository" :
{ "type" : "git"
, "url" : "http://github.com/npm/npm.git"
}
"repository" :
{ "type" : "svn"
, "url" : "http://v8.googlecode.com/svn/trunk/"
}
可選字段,object。Key是生命週期事件名,value是在事件點要跑的命令。參考npm-scripts。
可選字段,object。
Config對象中的值在Scripts的整個週期中皆可用,專門用於給Scripts提供配置參數。
可選字段,指示當前包所依賴的其餘包。
{ "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
可選字段。若是隻須要下載使用某些模塊,而不下載這些模塊的測試和文檔框架,放在這個下面比較不錯。
可選字段。兼容性依賴。若是你的包是插件,適合這種方式。
可選字段。發佈包時同時打包的其餘依賴。
可選字段。若是你想在某些依賴即便沒有找到,或則安裝失敗的狀況下,npm都繼續執行。那麼這些依賴適合放在這裏。
可選字段。既能夠指定node版本:
{ "engines" : {"node" : ">=0.10.3 <0.12" } }
也能夠指定npm版本:
{ "engines" : {"npm" : "~1.0.20" } }
可選字段,布爾值。若是你確定你的程序只能在制定的engine上運行,設置爲true。
可選字段。指定模塊能夠在什麼操做系統上運行:
"os" : [ "darwin","linux" ]
"os" : [ "!win32" ]
可選字段。指定CPU型號。
"cpu" : [ "x64","ia32" ]
"cpu" : [ "!arm","!mips" ]
可選字段,布爾值。若是你的包是個命令行應用程序,須要全局安裝,就能夠設爲true。
可選字段,布爾值。若是private爲true,npm會拒絕發佈。這能夠防止私有repositories不當心被髮布出去。
可選字段。發佈時使用的配置值放這。
· "scripts":{"start": "node server.js"}
若是你的包裏有server.js文件,npm默認將執行: node server.js
.
· "scripts":{"preinstall":"node-gyp rebuild"}
若是包裏有binding.gyp,
npm默認在preinstall命令時,使用node-gyp作編譯。