feat(plugins): 依赖互调 + SQLite 存储,契约 0.3.0

This commit is contained in:
Rick Ye
2026-09-11 14:56:30 +08:00
parent e958784d10
commit 1cb2b554c0
14 changed files with 807 additions and 114 deletions
+19 -1
View File
@@ -23,10 +23,28 @@ function copyTokensCss(): Plugin {
}
}
/** 构建期把插件存储 worker(免打包纯 ESM,只依赖 node 内置模块)拷到 out/main/ 旁:
* 主进程按 import.meta.url 定位它——必须与主进程产物同目录 */
function copyStorageWorker(): Plugin {
return {
name: 'aso-copy-storage-worker',
closeBundle() {
const src = resolve(__dirname, 'src/main/plugins/storage-worker.mjs')
const outDir = resolve(__dirname, 'out/main')
try {
mkdirSync(outDir, { recursive: true })
copyFileSync(src, resolve(outDir, 'storage-worker.mjs'))
} catch (err) {
this.warn(`storage-worker.mjs 拷贝失败: ${err instanceof Error ? err.message : String(err)}`)
}
}
}
}
export default defineConfig({
main: {
// pi SDK 为纯 ESM 包,主进程输出 ESM(Electron ≥28 支持)
plugins: [externalizeDepsPlugin()],
plugins: [externalizeDepsPlugin(), copyStorageWorker()],
build: {
rollupOptions: {
// electron 保持内置模块导入;pi 全家桶运行时从 node_modules 以 ESM 加载,