feat(plugins): 依赖互调 + SQLite 存储,契约 0.3.0
This commit is contained in:
@@ -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 加载,
|
||||
|
||||
Reference in New Issue
Block a user