4.5.3 啟用與停用
NoteCraftApp 使用文件 第 4 章・使用指南

4.5.3 使用指南

啟用與停用

用 plugins.json 頂層的 disabled 陣列暫時關掉一個 plugin,規則與檔案都不用刪;壞掉的 plugin 先停用,站照樣 build 得出來。

本頁目錄
  1. 什麼時候停用
  2. 在 /plugins 頁切換
  3. 手改 plugins.json
  4. 停用後會怎樣
  5. 停用與移除的差別

停用是把一個 plugin 的 id 寫進 .notecraft/plugins.json 頂層的 disabled 陣列。規則本身原封不動,拿掉 id 就恢復。

什麼時候停用

  • plugin 讓 build 失敗,一時修不好。 例如某個資料檔不符合 schema、JSON 寫壞了,或規則指到的 plugin 還沒裝。停用後這些檢查都會略過,站先 build 得出來
  • 暫時不想產生某一類頁面,但之後還要用,不想刪規則

想把 plugin 從專案徹底拿掉,用 install-plugin --remove,差別見本頁最後一節。

在 /plugins 頁切換

view 模式下,/plugins 每一列右側有一顆開關,打開某個 plugin 的 Drawer 也有「停用此外掛」/「啟用此外掛」按鈕。切換後會寫入 plugins.json,頁面約半秒後自動重新整理,讓新的狀態生效。

Plugin 管理頁
Plugin 管理頁:已安裝的外掛與各自的啟用狀態。

build/serve 的產物沒有開關,只顯示「啟用」或「停用」狀態。

開關只在 .notecraft/plugins.json 已經存在時能用。還沒有這個檔,先照映射規則建一份。

手改 plugins.json

直接編輯也可以:

.notecraft/plugins.json
{
  "disabled": ["openapi-renderer"],
  "plugins": [
    { "plugin": "er-diagram-renderer", "files": ["**/*.er.json"] },
    { "plugin": "openapi-renderer", "files": ["api/**/*.openapi.json"] }
  ]
}
  • disabled 是 plugin id 的字串陣列,可以有好幾個
  • 不是字串陣列時 build 失敗
  • 列了一個既沒安裝、也沒有規則引用的 id,build 會警告,通常是打錯字
  • 要恢復,從陣列拿掉 id;陣列空了可以整個鍵刪掉

用開關切換時,NoteCraftApp 只改 disabled 這一個鍵,其他內容與你的排版不動;陣列變空時會把這個鍵移除。

停用後會怎樣

被停用的 plugin,它的所有規則在比對前就被略過,等同不存在:

項目結果
命中的資料檔不產生 /view/ 頁面,舊網址變成 404
Sidebar、⌘K 指令面板不列出這些資料檔
/pluginsplugin 仍在清單上,標「停用」;Drawer 裡原本會命中的檔案標「已停用」
是否已安裝、JSON 與 schema 檢查不檢查
系列裡的 view: 章節跳過這一章,build 印警告
筆記裡的 <PluginView>build 失敗,因為它找不到被認領的資料檔

同一個檔案同時被停用與啟用中的規則命中時,由啟用中的那條接手,不會印多重命中的警告。

停用與移除的差別

啟用中 停用 disabled 加上 id 移除 install-plugin --remove
.notecraft/plugins/<id>/ 在 保留 刪除
plugins.json 的規則 生效 保留,比對前就略過 不動,要自己刪
renderer 打包進瀏覽器端 是 仍會打包 不再打包
命中的資料檔頁 /view/… 產生 不產生,舊網址 404 規則還在就 build 失敗
筆記裡的 <PluginView> 照常 build 失敗 build 失敗
恢復 — 從 disabled 拿掉 id 重新安裝
停用只是讓規則失效,檔案與打包都還在,恢復只要拿掉 id;移除會刪掉 plugin 資料夾,但不會替你改 plugins.json。兩種做法下,筆記裡還在用的 PluginView 都會讓 build 失敗。

停用不會把 renderer 移出打包,它只是不再被用到。想讓它完全離開產物,用移除:

終端機
npx notecraftapp install-plugin --remove openapi-renderer

移除後若 disabled 還列著這個 id,指令會提醒你一併清掉。安裝與移除的細節見安裝來源。

在 GitHub 上修改這一頁