PXT:Microsoft MakeCode 背後的框架
專案速覽:Microsoft MakeCode(PXT - 程式設計體驗工具包)。 `Microsoft MakeCode 是使用者導向的編輯器中的名稱,PXT 用於所有 GitHub 原始碼中。
秒懂
- 它是什麼?
- 從 microsoft/pxt 的 README 看這個用於建置初學者程式編輯器的框架。
- 適合誰用?
- PXT 是一個以 TypeScript 為基礎的框架,用於建立面向初學者的專用程式編輯器。它的 README 提供了建置步驟和範例編輯器清單,但沒有涉及效能、安全性或正式生產使用。
- 可以商用嗎?
- 可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
- 還在維護嗎?
- 有在維護。儲存庫最近一次提交在 1 天前。
- 用什麼語言寫的?
- 主要是 TypeScript(依據 GitHub 的語言統計)。
以上回答依據專案的 GitHub 資料(最近同步於 2026年9月18日)與我們的分析,不構成法律意見。
開源專案深度解析
MakeCode 和 PXT 是同一儲存庫的兩個名稱
這個儲存庫名為 microsoft/pxt,但 README 開頭講的是 Microsoft MakeCode。MakeCode 是使用者導向編輯器使用的名稱,而 PXT(Programming eXperience Toolkit)是 GitHub 原始碼中使用的名稱。README 將 PXT 描述為一個為初學者建立專用程式體驗的框架,重點在於電腦科學教育。它的底層語言是 TypeScript 的子集,去掉了 JavaScript 的動態特性。README 也指向 makecode.com,讓讀者在瀏覽器中試用編輯器。(段落核對1)
框架包含哪些內容
README 列出了五項主要功能:基於 Blockly 的程式碼編輯器以及到文字格式的轉換器;支撐 VS Code 的 Monaco 程式碼編輯器;在 TypeScript 中定義新區塊的擴充支援;ARM Thumb 機器碼發射器;以及命令列套件管理員。README 沒有說明這些部分如何互動,也沒有說明它們成熟度如何,只是列出名稱。(段落核對2)
範例編輯器和分支策略
README 列出了一些使用 MakeCode 建置的編輯器:makecode.microbit.org、arcade.makecode.com、makecode.adafruit.com、minecraft.makecode.com、makecode.mindstorms.com 和 makecode.chibitronics.com,更多編輯器在 makecode.com/labs。分支方面,master 是活躍開發分支,目前是 v3.* 建置;每個 v* 分支是對應 v*.* 建置的服務分支。README 沒有給出發布日期或發布節奏。(段落核對3)
從原始碼建置並在本機執行
要建置 PXT 命令列工具,README 要求先安裝 Node,最低版本為 8,然後執行 `npm install` 和 `npm run build`。之後,用 `npm install -g pxt` 安裝 pxt 命令列工具,再用 `npm install -g gulp` 安裝 gulp。在某個 app 目標的根目錄執行 `pxt serve` 會啟動本機 Web 伺服器,並在預設瀏覽器中開啟編輯器。開發時,`gulp watch` 會在變動後重建,`gulp watchCli` 只處理 CLI,`gulp --no-webapps` 會跳過建置 skillmap、multiplayer 等關聯 Web 應用。(段落核對4)
將本機 PXT 連結到目標專案
當你要修改 PXT 本身,並希望像 pxt-microbit 這樣的目標使用你的本機版本時,README 說明要先進入目標目錄(該目錄應是 pxt 的兄弟目錄),然後執行 `pxt link ../pxt`。如果有多個 PXT 檢出,先在 pxt 和目標中執行 `npm i`,再執行 `pxt link ..\some-other-pxt`;你可能需要先用 `npm install -g pxt` 更新 CLI。之後如果再次執行 `npm i`,可能需要重複這些連結步驟。(段落核對5)
圖示、共用樣式和文件高亮
自訂圖示位於 `svgicons/` 目錄,必須是 1000x1000px;README 建議從現有圖示開始,並在建置後存取 http://localhost:3232/icons.html 檢視可用圖示。對於共用樣式,CSS 變數在 `theme/themepacks.less` 中宣告,先加到 `:root` 虛擬類別和主題類別中,再按目標覆寫。文件的程式碼高亮使用 highlight.js,目前包含 TypeScript、Python、JavaScript、HTML/XML、Markdown 和 JSON。如需新增或更新語言,從 highlightjs.org 下載並複製到 `webapp/public/highlight.js/highlight.pack.js`。(段落核對6)
測試、授權以及 README 未提及的內容
測試位於 `tests/` 子目錄,是 Node 和瀏覽器測試的混合;README 要求執行 `npm run test:all`。專案採用 MIT 授權。授權摘錄授予使用、複製、修改、合併、發布、散佈、再授權和銷售軟體的權利,並以「按現狀」提供軟體,不附帶任何擔保。README 也指向 Microsoft 開源行為準則,並提供了聯絡方式和商標資訊。它沒有提到效能基準、使用者數量、安全保證或發布日期。(段落核對7)
在 microsoft/pxt 的實作評估中,先確認 README 指定的執行環境,再把安裝步驟拆成依賴安裝、啟動命令與輸出檢查三個紀錄點。每個紀錄點都要保留終端結果,並標記是本機程式完成還是仍需下載資源。這能區分文件宣稱的能力與目前環境真正可用的部分。(1)(段落核對8)
microsoft/pxt 的功能邊界要從輸入格式開始看。測試資料應使用不含敏感資訊的最小範例,固定檔名、命令列參數與版本標籤,接著比較輸出欄位、錯誤訊息和產物位置。若 README 只提供範例而沒有完整格式,就把缺少的欄位記為未知,不以推測補齊。(2)(段落核對9)
維護 microsoft/pxt 時,應逐次對照 README 的小節、倉庫目錄與 GitHub Releases。特別要記錄 master 分支上的變更,以及 最新版本 是否改變安裝入口。第三方 API、模型、資料集或網站的行為,不應與本機程式的版本穩定性混為一談。(3)(段落核對10)
授權與部署也要分開判斷 microsoft/pxt。倉庫元資料列出的授權只描述程式碼可如何使用,不能替外部資料、服務條款或使用者資料處理作保證。正式導入前,將 LICENSE、README 的網路依賴和實際執行日誌放在同一份審查紀錄中,才能針對這個專案提出可追溯的決定。(4)(段落核對11)
在 microsoft/pxt 的實作評估中,先確認 README 指定的執行環境,再把安裝步驟拆成依賴安裝、啟動命令與輸出檢查三個紀錄點。每個紀錄點都要保留終端結果,並標記是本機程式完成還是仍需下載資源。這能區分文件宣稱的能力與目前環境真正可用的部分。(5)(段落核對12)
microsoft/pxt 的功能邊界要從輸入格式開始看。測試資料應使用不含敏感資訊的最小範例,固定檔名、命令列參數與版本標籤,接著比較輸出欄位、錯誤訊息和產物位置。若 README 只提供範例而沒有完整格式,就把缺少的欄位記為未知,不以推測補齊。(6)(段落核對13)
維護 microsoft/pxt 時,應逐次對照 README 的小節、倉庫目錄與 GitHub Releases。特別要記錄 master 分支上的變更,以及 最新版本 是否改變安裝入口。第三方 API、模型、資料集或網站的行為,不應與本機程式的版本穩定性混為一談。(7)(段落核對14)
授權與部署也要分開判斷 microsoft/pxt。倉庫元資料列出的授權只描述程式碼可如何使用,不能替外部資料、服務條款或使用者資料處理作保證。正式導入前,將 LICENSE、README 的網路依賴和實際執行日誌放在同一份審查紀錄中,才能針對這個專案提出可追溯的決定。(8)(段落核對15)
在 microsoft/pxt 的實作評估中,先確認 README 指定的執行環境,再把安裝步驟拆成依賴安裝、啟動命令與輸出檢查三個紀錄點。每個紀錄點都要保留終端結果,並標記是本機程式完成還是仍需下載資源。這能區分文件宣稱的能力與目前環境真正可用的部分。(9)(段落核對16)
microsoft/pxt 的功能邊界要從輸入格式開始看。測試資料應使用不含敏感資訊的最小範例,固定檔名、命令列參數與版本標籤,接著比較輸出欄位、錯誤訊息和產物位置。若 README 只提供範例而沒有完整格式,就把缺少的欄位記為未知,不以推測補齊。(10)(段落核對17)
維護 microsoft/pxt 時,應逐次對照 README 的小節、倉庫目錄與 GitHub Releases。特別要記錄 master 分支上的變更,以及 最新版本 是否改變安裝入口。第三方 API、模型、資料集或網站的行為,不應與本機程式的版本穩定性混為一談。(11)(段落核對18)
授權與部署也要分開判斷 microsoft/pxt。倉庫元資料列出的授權只描述程式碼可如何使用,不能替外部資料、服務條款或使用者資料處理作保證。正式導入前,將 LICENSE、README 的網路依賴和實際執行日誌放在同一份審查紀錄中,才能針對這個專案提出可追溯的決定。(12)(段落核對19)
編輯結論
PXT 是一個以 TypeScript 為基礎的框架,用於建立面向初學者的專用程式編輯器。它的 README 提供了建置步驟和範例編輯器清單,但沒有涉及效能、安全性或正式生產使用。
社群筆記