簡介
外掛程式是獨立的程式碼片段,可為 Blockly 新增功能。外掛程式可以新增欄位、定義主題、建立轉譯器等。
外掛程式的目標使用者是指透過 npm 尋找並使用外掛程式的開發人員。如要進一步瞭解如何建構外掛程式,您也可以觀看「2021 年如何建構外掛程式講座」影片,以及觀看 2021 年外掛程式總覽講座。
第一方或第三方
blockly-samples 存放區中定義的外掛程式為第一方外掛程式,表示 Blockly 團隊提供支援,並在 npm 的 @blockly
範圍下發布這些外掛程式。
優質的第一方外掛程式:
- 有顯而易見的用途
- 適合一般用途
- 保持穩定
- 易於使用
第三方外掛程式由獨立維護及發布。第三方外掛程式可能較為複雜、更具實驗性質,或更針對目標。
舉例來說,許多機器人專案都可以使用用來設定馬達速度的欄位。另一方面,用於編輯資料庫結構定義定義的特定物件的欄位,優於第三方外掛程式。
第一方條件
第一方外掛程式必須符合下列規定:
- 除非 Blockly 團隊的豁免許可,否則適用於所有主要平台。
- Chrome、Firefox、Safari、Edge
- 擁有一位作家願意在第一年處理錯誤。
- 不會擋住猴子。
- 擁有明確定義及記錄的 API。
- 除非 Blockly 團隊的豁免授予,否則不得從 Blockly Core 呼叫私人或套件函式。
- 允許覆寫您定義的子類別中的套件函式。
- 如要享有豁免資格,歡迎針對區塊樣本提出問題。
- 有測試。
正在尋找外掛程式
- 在 GitHub 頁面探索第一方外掛程式的即時示範。
- 在 npm 中搜尋
@blockly
,即可查看 Blockly 團隊發布的外掛程式清單。 - 在 GitHub 上查看區塊範例存放區中的外掛程式目錄。每個外掛程式都有一個 README 檔案,用來說明其行為和預期用途。
安裝外掛程式
- 使用上述其中一項資源尋找您想要安裝的外掛程式,並找出 README 檔案。
依照 README 的安裝指示操作。一般來說,您需要從 npm 安裝外掛程式 (例如
npm install @blockly/block-plus-minus --save
然後匯入到程式碼中 (例如
import Blockly from 'blockly'; import '@blockly/block-plus-minus';
有些外掛程式可能需要執行額外步驟,例如初始化或註冊外掛程式。這些步驟會列在 README 中。
外掛程式版本
區塊範例中的外掛程式遵循語意化版本管理,因此任何破壞性變更都會納入新的主要版本。如 semver 規格所述,任何依賴 Monkey 修補核心的新外掛程式都會有 0 的主要版本以代表初始開發。
大多數外掛程式都包含主要 blockly
套件做為 peerDependency,而非依附元件。這是因為我們希望您自行在應用程式中安裝 Blockly (如果沒有一併使用 Blockly),您就可以自行管理 Blockly 的版本,這是很合理的情況。
不過,許多外掛程式都是開發為使用最新版 Blockly 中的新 API,因此您需要瞭解版本需求。外掛程式的 package.json
會指出與該外掛程式相容的最低版本。如果外掛程式在更新後需要使用新版 Blockly 版本 (例如使用全新的 API),由於我們認定這是一項破壞性變更,因此外掛程式的主要版本將會增加。
將外掛程式新增至 package.json
時,系統會預設在版本之前加上插入點,例如
"@blockly/block-plus-minus": "^2.0.15"
此設定會讓 npm 安裝列出版本或以上版本的任何次要版本,因此 2.0.20
或 2.1.0
版本可以正常運作,但無法存取 3.0.1
等新的主要版本。更新至新版本的 Blockly 時,建議您檢查是否有任何外掛程式也能更新至新的主要版本。
安裝沒有 npm 的外掛程式
雖然我們一般建議使用 npm 來輕鬆接收更新,但您也可以在沒有 npm 的情況下使用外掛程式。
您可以使用 unpkg 加入外掛程式檔案,而不必複製檔案,例如
<script src="https://unpkg.com/@blockly/block-plus-minus"></script>
或者,您可以複製 blockly-samples
存放區,並將檔案加入本機,類似於您複製 Blockly 的方式。不過,建議您盡可能使用套件管理員,因為這樣有助於您隨時掌握外掛程式的最新功能和錯誤修正。
使用這個方法時,您仍需執行外掛程式 README 中列出的任何初始化或註冊步驟。