
【免費(fèi)下載鏈接】pocketjsPocketJS: create UI on every screen you love. JavaScript components drawn as native pixels on handhelds, desktops and embedded screens. Also home to Pocket3D and MicroTS.項(xiàng)目地址https://gitcode.com/gh_mirrors/poc/pocketjs點(diǎn)擊查看免費(fèi)下載PocketJS 是一個(gè)用 JavaScript 組件直接繪制原生像素的 UI 運(yùn)行時(shí)——沒有 DOM、沒有 WebView同一份代碼可以跑在 PSP、PS Vita 到桌面設(shè)備上。它的官方 CLI 只需三步就能走通完整開發(fā)鏈路pocket create生成應(yīng)用骨架pocket check校驗(yàn)清單與目標(biāo)兼容性pocket build產(chǎn)出可直接運(yùn)行的安裝包。這篇指南帶你 10 分鐘跑通第一個(gè) PocketJS 應(yīng)用。先認(rèn)識(shí)一下PocketJS 的 CLI 是什么PocketJS 應(yīng)用用 TypeScript 編寫支持 Solid、Vue Vapor、Octane 三種框架由 QuickJS 客端運(yùn)行Rust 核心負(fù)責(zé) flexbox 布局并逐像素繪制。你寫組件CLI 負(fù)責(zé)剩下的所有事情解析 pocket.json 清單、編譯樣式表、打包原生產(chǎn)物。CLI 本體是零依賴的 Node 包pocketjs/cli源碼位于 tools/cli/bin.mjs命令一覽如下命令作用是否修改磁盤pocket create name在apps/下腳手架一個(gè)演示應(yīng)用? 生成 3 個(gè)文件pocket check --target T只讀校驗(yàn)清單、目標(biāo)能力、應(yīng)用類型? 純檢查pocket compile --target Tcheck 編譯出 JS/pak 產(chǎn)物? 僅產(chǎn)物pocket build --target Tcheck 編譯 打包 PSP / Vita 安裝包? 完整構(gòu)建pocket doctor/pocket setup診斷 / 一鍵安裝工具鏈類 flutter doctorsetup 會(huì)安裝check、compile、build都基于同一個(gè)清單解析器canonical manifest resolverpocket.json是唯一事實(shí)來源框架、入口、視口、API 需求都由它決定。準(zhǔn)備工作5 分鐘搭好環(huán)境1. 克隆倉庫并安裝依賴create/check/build需要在 PocketJS checkout 內(nèi)運(yùn)行CLI 會(huì)從當(dāng)前目錄向上查找git clone https://gitcode.com/gh_mirrors/poc/pocketjs cd pocketjs bun install2. 全局安裝 CLInpm install -g pocketjs/cli3.可選校驗(yàn)并補(bǔ)裝工具鏈pocket doctor # 診斷 Bun、Rust 目標(biāo)、PSP 工具鏈缺失項(xiàng)給出修復(fù)提示 pocket setup # 安裝固定的 PSP 工具鏈Rust nightly cargo-psp LLVM SDK只想寫 UI、在瀏覽器里預(yù)覽的話Bun rustup target add wasm32-unknown-unknown就夠了只有構(gòu)建 PSP EBOOT 才需要完整的 Rust/PSP 工具鏈詳見 getting-started 文檔。第 1 步pocket create —— 一條命令生成應(yīng)用骨架在倉庫根目錄執(zhí)行pocket create my-app命令會(huì)在apps/my-app/下生成三個(gè)文件apps/my-app/ ├── app.tsx # 組件一個(gè)響應(yīng)式計(jì)數(shù)器按 CROSS 鍵 1 ├── main.tsx # 掛載入口mount(() App /) └── pocket.json # v2 清單應(yīng)用的全部意圖聲明app.tsx是一個(gè)開箱即用的 Solid 組件createSignal維護(hù)計(jì)數(shù)onButtonPress(BTN.CROSS, …)監(jiān)聽十字鍵瀏覽器里是 Z 或回車。想換成 Vue Vapor 或 Octane改pocket.json里的app.framework即可構(gòu)建管線會(huì)自動(dòng)切換。pocket.json是嚴(yán)格的應(yīng)用意圖生成的默認(rèn)內(nèi)容長這樣{ pocket: 2, id: dev.example.my-app, name: my-app, version: 0.1.0, engine: { capabilities: { requires: [text.glyphs.baked, input.buttons] } }, app: { entry: main.tsx, output: my-app-main, framework: solid, viewport: { logical: [480, 272], presentation: integer-fit } } }三個(gè)新手最該記住的約定id要跨版本保持穩(wěn)定——Vita 后端會(huì)從它推導(dǎo)安裝 Title IDrequires里列的能力目標(biāo)設(shè)備缺一個(gè)就構(gòu)建失敗這是刻意的提前失敗設(shè)計(jì)可選能力如input.touch放進(jìn)enhances并保留按鍵兜底。完整字段定義參考 pocket 2 清單 schema也可以對(duì)比現(xiàn)成應(yīng)用的寫法例如 apps/hero/pocket.json。第 2 步pocket check —— 構(gòu)建前先驗(yàn)證目標(biāo)兼容性check是只讀的不產(chǎn)生任何產(chǎn)物適合在改完pocket.json或組件后隨時(shí)跑一遍pocket check --target psp --manifest apps/my-app/pocket.json pocket check --target vita --manifest apps/my-app/pocket.json它會(huì)做三件事解析pocket.json、校驗(yàn)?zāi)繕?biāo)設(shè)備的能力/密度是否滿足聲明、類型檢查應(yīng)用源碼。輸出形如ok 480x272 · text.glyphs.baked · input.buttons這里的妙處在于一個(gè) bundle多塊屏幕同一個(gè)pocket.json對(duì) PSP 和 Vita 都能通過——Vita 只是把 480×272 的邏輯視口按 density 2 渲染成 960×544不需要改一行組件代碼。想換目標(biāo)設(shè)備清單見 平臺(tái)契約規(guī)范。第 3 步pocket build —— 產(chǎn)出可安裝的應(yīng)用包校驗(yàn)通過后build會(huì)串聯(lián) check → 編譯 → 打包三個(gè)環(huán)節(jié)--之后的參數(shù)原樣傳給選定的原生后端pocket build --target psp --manifest apps/my-app/pocket.json -- --release # 產(chǎn)物hosts/psp/target/mipsel-sony-psp/release/EBOOT.PBPPSP 的EBOOT.PBP可直接拷進(jìn) PSP 的PSP/GAME目錄運(yùn)行。構(gòu)建 Vita 安裝包VPK需要先配好 VitaSDKexport VITASDK$HOME/vitasdk export PATH$VITASDK/bin:$HOME/.cargo/bin:$PATH pocket build --target vita --manifest apps/my-app/pocket.json -- --release # 產(chǎn)物apps/my-app/dist/vita/my-app-main.vpkVPK 會(huì)自動(dòng)帶上默認(rèn)的 128×128 氣泡圖標(biāo)和完整 LiveArea 啟動(dòng)畫面不會(huì)看到空白圖標(biāo)或通用啟動(dòng)頁。Vita 工具鏈詳情見 hosts/vita/README.md。構(gòu)建之外驗(yàn)證產(chǎn)物的兩條捷徑不想掏真機(jī)兩條命令即可pocket dev my-app-main # 構(gòu)建 wasm 核心 應(yīng)用在瀏覽器開發(fā)主機(jī)中運(yùn)行默認(rèn) http://127.0.0.1:8130/ pocket devtools my-app # 打開 DevTools 面板 USB 調(diào)試橋一幀一幀回放三步走全流程速查把整條鏈路串起來就是下面這個(gè)節(jié)奏pocket doctor # 0. 環(huán)境體檢 pocket setup # 1. 補(bǔ)齊 PSP 工具鏈 pocket create my-app # 2. 生成應(yīng)用骨架 pocket check --target psp --manifest apps/my-app/pocket.json pocket check --target vita --manifest apps/my-app/pocket.json pocket build --target psp --manifest apps/my-app/pocket.json -- --release pocket dev my-app-main # 瀏覽器里先跑起來看效果 小貼士改組件后重跑pocket check只要幾秒建議把它當(dāng)成保存快捷鍵build留給真正要發(fā)布的時(shí)候。常見問題Qpocket create提示 not inside a PocketJS checkout命令從當(dāng)前目錄向上查找pocketjs/framework包沒找到就會(huì)報(bào)這個(gè)錯(cuò)。先cd進(jìn) PocketJS 倉庫目錄再執(zhí)行如果你是外部項(xiàng)目安裝pocketjs/framework后用POCKETJS_FRAMEWORK_ROOT顯式指定即可。Q為什么requires里少一個(gè)能力就構(gòu)建失敗這是提前失敗策略與其在設(shè)備上白屏不如在編譯前告訴你目標(biāo)不滿足聲明。把可選項(xiàng)挪到enhances并保留按鍵/觸控兜底兼容性會(huì)更好。Qcheck 通過了build 卻失敗大概率是目標(biāo)后端工具鏈沒裝全Rust nightly、cargo-psp、LLVM、PSP SDK。跑一次pocket doctor按提示執(zhí)行pocket setup即可固定版本都記錄在 tools/cli/psp-toolchain.json。Q--后面還能加什么--之后的參數(shù)全部透?jìng)鹘o原生后端。比如-- --release是 release 構(gòu)建調(diào)試階段可以先去掉它編譯更快。核心文件導(dǎo)航路徑說明tools/cli/README.mdCLI 全部命令與工具鏈說明tools/cli/bin.mjsCLI 入口create / check / build 的實(shí)現(xiàn)tools/pocket.ts清單解析器check / compile / build 的共同后端site/content/docs/getting-started.md官方入門指南本文的擴(kuò)展版contracts/schema/pocket-2.jsonpocket.jsonv2 清單 schemasite/content/docs/build-pipeline.md構(gòu)建管線細(xì)節(jié)與產(chǎn)物命名apps/hero/pocket.json一個(gè)真實(shí)應(yīng)用的清單范例從create到build三條命令就是 PocketJS 的日常開發(fā)循環(huán)。下一步可以看看怎么給組件加 構(gòu)建期 Tailwind 樣式或者用 Pocket3D 把場(chǎng)景畫進(jìn)同一塊屏幕。贊分享【免費(fèi)下載鏈接】pocketjsPocketJS: create UI on every screen you love. JavaScript components drawn as native pixels on handhelds, desktops and embedded screens. Also home to Pocket3D and MicroTS.項(xiàng)目地址https://gitcode.com/gh_mirrors/poc/pocketjs點(diǎn)擊查看免費(fèi)下載相關(guān)推薦5步快速掌握Firebase CLI工具新手完整上手指南5步快速掌握Firebase CLI工具新手完整上手指南 Firebase CLI工具是Google Firebase生態(tài)系統(tǒng)的核心管理工具讓開發(fā)者能夠通過VLOOK主題快速上手完整指南三步完成配置教程VLOOK主題快速上手完整指南三步完成配置教程 VLOOK主題是一款專為Typora編輯器設(shè)計(jì)的強(qiáng)大美化工具包和功能增強(qiáng)插件能夠顯著提升Markdown文檔前端文檔SvelteKit 框架與 CLI 快速上手從 sv create 到項(xiàng)目構(gòu)建的完整實(shí)戰(zhàn)指南SvelteKit 框架與 CLI 快速上手從 sv create 到項(xiàng)目構(gòu)建的完整實(shí)戰(zhàn)指南 導(dǎo)讀 本文以 packages/kit/README.md htWeb框架后端前端創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考