xfy 246d8a6d67 feat(libs): add xterm-terminal IIFE library (xterm.js 6.0)
New pnpm workspace package @yggdrasil/xterm-terminal, output to
public/xterm/. Output-only terminal (disableStdin) for streaming
container stdout/stderr via SSE.

- @xterm/xterm@^6.0.0 + @xterm/addon-fit@^0.11.0 (released same day,
  2025-12-22; 0.10.0's peerDependency is ^5.0.0 and incompatible)
- convertEol: containers emit \n, xterm needs \r\n
- stderr wrapped in ANSI red for visual distinction
- Catppuccin Latte/Mocha themes matching project highlight.css
- Mirrors codemirror-editor IIFE pattern: object literal default export,
  XtermOptions as class (survives TS erasure for wasm-bindgen)
- css.d.ts declares *.css module for tsc side-effect import
2026-07-10 11:37:04 +08:00

28 lines
803 B
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { resolve } from 'node:path';
import { defineConfig } from 'vite';
export default defineConfig({
build: {
// 输出直写 public/xterm/Dioxus 直接托管,无需拷贝步骤。
outDir: resolve(__dirname, '../../public/xterm'),
emptyOutDir: true,
lib: {
entry: resolve(__dirname, 'src/index.ts'),
// IIFE 产物挂在 window.XtermTerminal 上Rust 侧用 Reflect::get 取。
name: 'XtermTerminal',
fileName: () => 'terminal.js',
formats: ['iife'],
},
rolldownOptions: {
output: {
// 默认导出(对象字面量 { create() })成为 window.XtermTerminal。
exports: 'default',
assetFileNames: 'terminal.[ext]',
},
},
cssCodeSplit: false,
minify: true,
sourcemap: true,
},
});