擴(kuò)展描述文件是一個(gè)擴(kuò)展必須提供的文件,用來(lái)描述一個(gè)擴(kuò)展的名稱、類型及其他關(guān)鍵信息的配置文件。喧喧的擴(kuò)展描述文件文件名為 package.json ,兼容 npm 包管理器中的 package.json 文件。一個(gè)最簡(jiǎn)單的應(yīng)用擴(kuò)展僅需要在擴(kuò)展包中包含描述文件即可實(shí)現(xiàn)。以下為擴(kuò)展描述文件中支持的配置項(xiàng)目:
{ // 擴(kuò)展的名稱,擴(kuò)展名稱只能包含字母、數(shù)字、短橫線及下劃線,且第一個(gè)字符必須為字母 // 擴(kuò)展的名稱必須唯一,相同名稱的擴(kuò)展會(huì)提示覆蓋或升級(jí),為避免與其他擴(kuò)展發(fā)生沖突,也可以使用 guid 做為擴(kuò)展名稱 "name": "simple-extension", // 擴(kuò)展在界面上顯示的名稱 "displayName": "簡(jiǎn)單擴(kuò)展", // 擴(kuò)展的描述或介紹文本 "description": "這是一個(gè)簡(jiǎn)單擴(kuò)展的例子。", // 擴(kuò)展配置 "xext": { // 擴(kuò)展類型,目前支持的類型包括: // * app - 應(yīng)用擴(kuò)展 // * plugin - 插件擴(kuò)展 // * theme - 主題擴(kuò)展 "type": "app", // 擴(kuò)展圖標(biāo),可以使用如下值 // * 使用 Material Design Icons (https://materialdesignicons.com/),使用 mdi- 前綴,例如 mdi-star // * 使用 http:// 或 https:// 協(xié)議開(kāi)頭頁(yè)面地址,例如 http://zui.sexy/img/icon.png // * 使用相對(duì)擴(kuò)展包目錄的相對(duì)地址,例如 img/icon.png // 需要注意: // * 當(dāng)擴(kuò)展類型為 app 時(shí),如果不指定則會(huì)使用應(yīng)用圖標(biāo)(appIcon) // * 如果使用圖片作為擴(kuò)展圖標(biāo),確保作為圖標(biāo)的圖片長(zhǎng)寬比例為1:1(正方形圖片),并且大小不小于 512x512 "icon": "mdi-star", // 擴(kuò)展主要顏色,可能被用到自動(dòng)生成的圖標(biāo)上或作為部分界面背景 "accentColor": "#aa00ff", // 針對(duì)擴(kuò)展類型 app - 應(yīng)用界面類型 // 可選值包括: // * insideView:提供 React 組件作為界面視圖 // * webView:完整的網(wǎng)頁(yè)視圖 "appType": "insideView", // 當(dāng) appType 為 webView 時(shí)加載的頁(yè)面地址,可以包含以下格式的地址: // * 使用 http:// 或 https:// 協(xié)議開(kāi)頭的網(wǎng)站頁(yè)面地址,例如 http://zui.sexy/m // * 使用相對(duì)擴(kuò)展包目錄的相對(duì)地址,通常指向一個(gè) html 文件,例如 lib/page/index.html "webViewUrl": "http://zui.sexy/m", // 當(dāng) appType 為 webView 時(shí),指定一個(gè)腳本在 webview 頁(yè)面中其他腳本執(zhí)行之前先加載,此腳本必須為擴(kuò)展包內(nèi)的 JavaScript 文 件。 "webViewPreloadScript": "lib/preload.js", // 針對(duì)擴(kuò)展類型 app - 應(yīng)用圖標(biāo),可以使用如下值 // * 使用 Material Design Icons (https://materialdesignicons.com/),使用 mdi- 前綴,例如 mdi-star // * 使用 http:// 或 https:// 協(xié)議開(kāi)頭圖片地址,例如 http://zui.sexy/img/icon.png // * 使用相對(duì)擴(kuò)展包目錄的相對(duì)地址,例如 img/icon.png // 需要注意: // * 如果不指定則會(huì)使用擴(kuò)展圖標(biāo)(icon)作為應(yīng)用圖標(biāo) // * 如果使用圖片作為應(yīng)用圖標(biāo),確保作為圖標(biāo)的圖片長(zhǎng)寬比例為1:1(正方形),并且大小不小于 512x512 "appIcon": "mdi-star", // 針對(duì)擴(kuò)展類型 app - 應(yīng)用配色,可能被用到圖標(biāo)上,如果不指定會(huì)使用擴(kuò)展的 accentColor "appAccentColor": "#aa00ff", // 針對(duì)擴(kuò)展類型 app - 界面背景色,可以設(shè)置為透明(transparent),默認(rèn)為白色 #fff "appBackColor": "#fff", // 針對(duì)擴(kuò)展類型 plugin 或 app - 模塊主要入口腳本文件位置,可以包含以下格式的地址: // * 使用相對(duì)擴(kuò)展包目錄的相對(duì)地址,例如 lib/index.js // 當(dāng)擴(kuò)展類型為 plugin 時(shí)會(huì)自動(dòng)從擴(kuò)展包目錄下尋找 index.js 文件作為模塊主入口文件 "main": "lib/index.js", // 是否允許熱加載擴(kuò)展,默認(rèn)值為 false,如果設(shè)置為 true,則安裝擴(kuò)展后無(wú)需重啟才能使用,但 onUserLogin(用戶已經(jīng)登錄后,如果是重新登錄仍然會(huì)生效) 和 replaceViews 將不會(huì)立即生效(仍然需要在下次重啟時(shí)生效) "hot": false, // 針對(duì)擴(kuò)展類型 theme - 主題列表 // 通過(guò)一個(gè)對(duì)象數(shù)組,聲明多個(gè)主題配置 "themes": [ { // 主題內(nèi)部名稱 "name": "dark", // 主題的描述文本,可能會(huì)在界面上顯示 "description": "這是一個(gè)暗黑主題", // 主題顯示名稱 "displayName": "暗色", // 主題 CSS 文件位置,可以是相對(duì)包的路徑或者一個(gè)可訪問(wèn)的網(wǎng)址 "style": "lib/themes/dark.css", // 主題的主要顏色 "color": "#ff00f1", // 主題載入方式,可取值包括: // * append 在默認(rèn)樣式的基礎(chǔ)上附加樣式 // * override 替代默認(rèn)樣式 "inject": "override", // 主題的預(yù)覽圖片地址 "preview": "lib/themes/preview-dark.png" } ], // 為消息定義右鍵菜單項(xiàng)目 "chatMessageMenu": [ { "label": "保存消息文本到文件", "url": "!${EXTENSION}/saveText/?messageId=${messageId}" } // 更多右鍵菜單 ], // 擴(kuò)展配置(1.3 中尚未實(shí)現(xiàn)) "configurations": [ { // 配置項(xiàng)名稱 "name": "cfg1", // 配置項(xiàng)顯示名稱 "displayName": "配置項(xiàng)一", // 配置項(xiàng)描述 "description": "配置項(xiàng)一的說(shuō)明", // 配置項(xiàng)默認(rèn)值 "defaultValue": "默認(rèn)值", // 配置項(xiàng)值類型,可選值包括 "valueType": "string", // 用于驗(yàn)證配置值是否合法的正則表達(dá)式 "matchReg": "[a-zA-Z0-9]+", } ] }, // 擴(kuò)展的版本 "version": "1.0.0", // 擴(kuò)展開(kāi)發(fā)的作者 "author": "Catouse", // 擴(kuò)展的發(fā)布者 "publisher": "易軟天創(chuàng)", // 擴(kuò)展要求的運(yùn)行環(huán)境 "engines": { // 擴(kuò)展對(duì)喧喧版本的支持 "xuanxuan": "^1.3.0", // 擴(kuò)展所支持的平臺(tái) "platform": "electron,nwjs", // 擴(kuò)展所依賴的其他擴(kuò)展 "extensions": [], }, // 擴(kuò)展版權(quán)聲明 "license": "MIT", // 擴(kuò)展主頁(yè) "homepage": "http://xuan.im/extensions", // 擴(kuò)展關(guān)鍵字,可以用于搜索 "keywords": ["xuanxuan", "im", "extension", "sample"], // Bugs 反饋?lái)?yè)面 "bugs": { "url": "https://github.com/easysoft/xuanxuan/issues" }, // 代碼庫(kù)地址 "repository": { "url": "https://github.com/easysoft/xuanxuan/", "type": "git" }, // ...兼容其他 npm package.json 屬性 }
更多建議: