伺服端外掛
伺服端外掛是執行於 Luker 伺服端處理程序內的 Node.js 模組。前端擴充功能執行於瀏覽器,伺服端外掛則可讀寫伺服端檔案系統、使用 Node.js 模組、代理外部 API 請求。外掛路由掛載於 /api/plugins/{plugin-id}/ 下。
WARNING
伺服端外掛沒有沙箱隔離。外掛與伺服端處理程序擁有相同權限,請僅安裝可信任來源的外掛。
啟用伺服端外掛
伺服端外掛預設關閉,於 config.yaml 中開啟:
enableServerPlugins: true修改後重新啟動 Luker。
開啟伺服端外掛分頁
該分頁位於管理面板,僅管理員可見。
- 開啟使用者設定。
- 選擇管理面板。
- 選擇伺服端外掛分頁。

分頁列出已安裝的外掛,顯示其目錄、版本、套件中繼資料與 Git 遠端。
從 Git 位址安裝
將儲存庫位址貼到 Git 儲存庫位址欄位,然後選擇安裝。

Luker 會將儲存庫克隆到外掛目錄並加入清單。新安裝的外掛需重啟後端才會載入。
安裝依賴
外掛宣告 npm 依賴時,Luker 會在安裝後檢查,並提示安裝缺少的依賴。

選擇安裝依賴進行安裝。桌面端優先執行系統 npm,npm 無法使用時回退到內建安裝器;Android 端使用內建安裝器,無需終端機。選擇取消則維持未安裝狀態,外掛列會顯示缺少數量與安裝依賴按鈕。

僅當外掛宣告尚未安裝的依賴時,外掛列才會顯示安裝依賴按鈕。依賴就緒後,外掛列顯示依賴已安裝並隱藏該按鈕。未宣告依賴的外掛不顯示依賴狀態與按鈕。

重新啟動後端
外掛在啟動時載入。安裝或更新外掛後,重新啟動 Luker 才會載入。主控台會記錄載入的外掛:
[Plugin Loader] Loaded plugin: My Plugin (my-plugin)驗證外掛路由
伺服端外掛路由掛載於 /api/plugins/{plugin-id}/ 下。請求外掛的某個路由即可確認其已載入。對於 id 為 hello-world、提供 GET /hello 路由的外掛:
curl http://localhost:8000/api/plugins/hello-world/hello傳回 JSON 即表示外掛正在執行。
手動安裝
也可將外掛檔案或目錄直接放入外掛目錄,預設位於專案根目錄的 plugins/,然後重新啟動 Luker。為手動放置的外掛安裝依賴時,可在伺服端外掛分頁使用其安裝依賴按鈕,或在桌面端於外掛目錄內執行 npm install。
疑難排解
依賴缺少
外掛因依賴缺少而載入失敗時,在伺服端外掛分頁從對應外掛列安裝依賴,然後重新啟動 Luker。
原生模組
部分 npm 套件在安裝時編譯原生程式碼。Android 端的安裝不執行建置指令碼,因此需要編譯原生程式碼的套件無法在 Android 端安裝。請先在桌面端安裝此類套件,再將外掛目錄複製到裝置。
Git 無法使用
系統 Git 無法使用時,Luker 使用內建實作克隆 HTTP(S) 位址;SSH 位址需要系統 Git。克隆 SSH 位址失敗時,安裝 Git 後重新安裝此外掛。