npm package.json文件解读
每個(gè)Nodejs項(xiàng)目的根目錄下面,一般都會(huì)有一個(gè)package.json文件。該文件可以由npm init生成,定義了項(xiàng)目所需要的各種模塊,以及項(xiàng)目的配置信息(比如名稱、版本、許可證等元數(shù)據(jù))。
package.json文件內(nèi)部就是一個(gè)JSON對(duì)象,該對(duì)象的每一個(gè)成員就是當(dāng)前項(xiàng)目的一項(xiàng)設(shè)置。
基本字段
name
項(xiàng)目名稱(npm包名)。必需字段
version
項(xiàng)目版本。必需字段。版本號(hào)的格式為"1.0.0",分別代表“主版本號(hào).次版本號(hào).修訂號(hào)”。它的遞增規(guī)則如下:
- 主版本號(hào):當(dāng)你做了不兼容的API 修改;
- 次版本號(hào):當(dāng)你做了向下兼容的功能性新增;
- 修訂號(hào):當(dāng)你做了向下兼容的問題修正。
在實(shí)際使用中,一般可以看到各種形式的版本號(hào):
*: 任意版本 1.1.0: 指定版本 ~1.1.0: 1.1.0 <= 版本 < 1.2.0 ^1.1.0: 1.1.0 <= 版本 < 2.0.0 latest:安裝最新版本。- *表示任意版本;
- ~前綴表示,安裝大于指定的這個(gè)版本,并且匹配到 x.y.z 中 z 最新的版本;
- ^前綴在 ^0.y.z 時(shí)的表現(xiàn)和 ~0.y.z 是一樣的,然而 ^1.y.z 的時(shí)候,就會(huì)匹配到 y 和 z 都是最新的版本;
- 特殊的是,當(dāng)版本號(hào)為 ^0.0.z 或者 ~0.0.z 的時(shí)候,考慮到 0.0.z 是一個(gè)不穩(wěn)定版本, 所以它們都相當(dāng)于 =0.0.z。
author && contributors
項(xiàng)目作者以及貢獻(xiàn)者。author是字符串形式的作者名,contributors是一個(gè)項(xiàng)目貢獻(xiàn)者數(shù)組。
description && keywords
項(xiàng)目描述和項(xiàng)目關(guān)鍵字。幫助人們?cè)谑褂胣pm search時(shí)找到這個(gè)包。
license
許可證。
功能性字段
scripts
定義腳本命令。它的每一個(gè)屬性,對(duì)應(yīng)一段腳本。并且可以在命令行下使用npm run命令執(zhí)行這段腳本。
npm 腳本的原理非常簡(jiǎn)單。每當(dāng)執(zhí)行npm run,就會(huì)自動(dòng)新建一個(gè) Shell,在這個(gè) Shell 里面執(zhí)行指定的腳本命令。因此,只要是 Shell(一般是 Bash)可以運(yùn)行的命令,就可以寫在 npm 腳本里面。
比較特別的是,npm run新建的這個(gè) Shell,會(huì)將當(dāng)前目錄的node_modules/.bin子目錄加入PATH變量,執(zhí)行結(jié)束后,再將PATH變量恢復(fù)原樣。
更多可參考阮老師的 npm scripts 使用指南
dependencies && devDependencies
npm install在安裝node模塊時(shí),有兩種命令參數(shù)可以把它們的信息寫入package.json文件: –save以及–save-dev。–save會(huì)把依賴包名稱添加到package.json文件dependencies鍵下,–save-dev則添加到package.json文件devDependencies鍵下。
dependencies字段指定了項(xiàng)目生產(chǎn)環(huán)境中需要的依賴,即正常運(yùn)行該包時(shí)所依賴的模塊,devDependencies指定項(xiàng)目開發(fā)所需要的依賴項(xiàng),像一些進(jìn)行單元測(cè)試之類的包,比如grunt-contrib-uglify,我們用它混淆js文件,它們不會(huì)被部署到生產(chǎn)環(huán)境。
它們都指向一個(gè)對(duì)象。該對(duì)象的各個(gè)成員,分別由模塊名和對(duì)應(yīng)的版本要求組成,表示依賴的模塊及其版本范圍。
bin
用來指定各個(gè)內(nèi)部命令對(duì)應(yīng)的可執(zhí)行文件的位置。
例如:
"bin": {"someTool": "./bin/someTool.js" }上面代碼指定,someTool 命令對(duì)應(yīng)的可執(zhí)行文件為 bin 子目錄下的 someTool.js
main
指定包的入口程序文件。這個(gè)字段的默認(rèn)值是模塊根目錄下面的index.js。
config
用于向環(huán)境變量輸出值。
比如:
{// ..."config" : { "port" : "8080" }, }然后通過process.env.npm_package_config_port讀取該值。
其他字段
engines
指定node的工作版本
man
指定當(dāng)前模塊的man文檔的位置。
preferGlobal
布爾類型值,表示當(dāng)用戶不將該模塊安裝為全局模塊時(shí)(即不用–global參數(shù)),要不要顯示警告。
...
轉(zhuǎn)載于:https://www.cnblogs.com/yzg1/p/6373852.html
總結(jié)
以上是生活随笔為你收集整理的npm package.json文件解读的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: %@page contentType=t
- 下一篇: 用户看法调查结果及分析(四)