Archived
feat: build bundled plugins from TypeScript
This commit is contained in:
+8
-1
@@ -143,9 +143,16 @@ After editing, check the manifest endpoint and browser-console failure cases.</c
|
||||
Pi Web ships a real bundled <strong>Info</strong> plugin. It is intentionally small while still using all
|
||||
core contribution types: one action, one workspace label, and one workspace panel.
|
||||
</p>
|
||||
<p>
|
||||
Bundled Pi Web plugins are developed as TypeScript in the repository, while their package metadata
|
||||
points at the built JavaScript ES modules that the browser loads. <code>npm run dev:web</code> watches and
|
||||
rebuilds bundled plugin TS into <code>dist/pi-web-plugins/</code> during development, and <code>npm run build</code>
|
||||
emits JS before release packaging.
|
||||
</p>
|
||||
<ul>
|
||||
<li><code>pi-web-plugins/info/package.json</code> shows the required metadata shape.</li>
|
||||
<li><code>pi-web-plugins/info/pi-web-plugin.js</code> shows the browser module shape.</li>
|
||||
<li><code>pi-web-plugins/info/pi-web-plugin.ts</code> shows the TypeScript source shape.</li>
|
||||
<li><code>dist/pi-web-plugins/info/pi-web-plugin.js</code> is the built browser module in a checkout.</li>
|
||||
</ul>
|
||||
<p>
|
||||
Read it on GitHub:
|
||||
|
||||
+11
-3
@@ -65,11 +65,19 @@ After editing, check the manifest endpoint and browser-console failure cases.
|
||||
|
||||
Pi Web ships a real bundled `info` plugin. Use it as the reference example because it is intentionally small while still exercising all core contribution types: an action, a workspace label, and a workspace panel.
|
||||
|
||||
Files:
|
||||
Bundled Pi Web plugins are developed as TypeScript in the repository, but their `package.json` metadata still points at built JavaScript because plugins are loaded by the browser as JS ES modules. `npm run dev:web` watches and rebuilds bundled plugin TS into `dist/pi-web-plugins/` during development, and `npm run build` emits the JS before packaging a release.
|
||||
|
||||
Source files:
|
||||
|
||||
```text
|
||||
pi-web-plugins/info/package.json
|
||||
pi-web-plugins/info/pi-web-plugin.js
|
||||
pi-web-plugins/info/pi-web-plugin.ts
|
||||
```
|
||||
|
||||
Built module:
|
||||
|
||||
```text
|
||||
dist/pi-web-plugins/info/pi-web-plugin.js
|
||||
```
|
||||
|
||||
Package metadata:
|
||||
@@ -538,7 +546,7 @@ Pi Web does not provide a plugin cache/invalidation framework. Keep host callbac
|
||||
|
||||
If you are an AI agent building or editing a Pi Web plugin, follow this checklist:
|
||||
|
||||
1. Create or update a plugin folder with `package.json` and `pi-web-plugin.js`.
|
||||
1. Create or update a plugin folder with `package.json` and a JavaScript module such as `pi-web-plugin.js`.
|
||||
2. Use the single supported package metadata shape: `piWeb.plugins` array with `{ id, module }` entries.
|
||||
3. Default-export `{ apiVersion: 1, name, activate }` from the module.
|
||||
4. Return `{ contributions: { actions, workspacePanels, workspaceLabels } }` from `activate()`.
|
||||
|
||||
Reference in New Issue
Block a user