项目文件夹

文件
T
caorushizi f04989e973 feat(extension): bundle into desktop app with settings entry and docs
Ship the MediaGo browser extension alongside the Desktop installer so
users can "Load unpacked" it from Chrome / Edge without building the
repo or downloading a separate zip. Adds a discovery path from inside
the app, a three-language doc page, and fixes the Desktop HTTP port
the extension was pointing at.

Packaging:
- `pnpm build:electron` now also builds `@mediago/extension` (turbo
  filter), and `apps/electron/scripts/build.ts` copies the dist to
  `app/build/extension/` and declares it in electron-builder
  `extraResources` → installers land `resources/extension/`.

Runtime:
- `resolveExtensionDir()` in binaryResolver — dev points at the
  monorepo dist, prod at `process.resourcesPath/extension`, env
  override via `MEDIAGO_EXTENSION_DIR`.
- New IPC `app.getExtensionDir()` returns the resolved path. UI pairs
  it with the existing `shell.open()` (no dedicated open-folder IPC)
  so the pattern matches configDir / binDir / localDir.

Settings UI:
- New "Browser extension directory" button in Settings → More Settings,
  right next to the existing folder shortcuts. Web/server mode hides
  the row behind `isWeb` and the stub returns "".
- New i18n key `extensionDir` in shared zh/en resources; duplicate
  `currentVersion` key removed from zh.ts along the way.

Port fix:
- Extension `DESKTOP_HTTP_BASE` corrected from `:9900` → `:39719` to
  match the Electron-side `preferredPort`. 9900 is the standalone
  Go Core / web-server port — two separate deployments.

Docs:
- New `docs/extension.md` + `docs/en/extension.md` + `docs/jp/extension.md`
  covering what the extension does, how to install the unpacked
  build, the three dispatch modes (schema / desktop-http / docker-http),
  import-behaviour toggles, language switching, and common pitfalls.
- Sidebar entries registered in `.vitepress/config.ts` for all three
  locales.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 13:56:05 +08:00

62 行
2.5 KiB
JSON

{
"name": "@mediago/project",
"version": "0.1.0",
"description": "A powerful and easy-to-use online video downloader",
"author": "caorushizi",
"homepage": "https://downloader.caorushizi.cn/",
"private": true,
"type": "module",
"packageManager": "pnpm@10.15.0",
"scripts": {
"knip": "knip",
"dev:electron": "pnpm core:build && cross-env APP_TARGET=electron NODE_ENV=development pnpm build:electron && pnpm start:electron",
"start:electron": "cross-env APP_TARGET=electron turbo run dev -F @mediago/electron -F @mediago/ui",
"build:electron": "cross-env APP_TARGET=electron NODE_ENV=production turbo run build -F @mediago/electron -F @mediago/ui -F @mediago/extension",
"dev:server": "pnpm core:build && cross-env APP_TARGET=server NODE_ENV=development turbo run dev -F @mediago/server -F @mediago/ui",
"build:web": "cross-env APP_TARGET=server NODE_ENV=production turbo run build -F @mediago/ui",
"dev:extension": "pnpm -F @mediago/extension run dev",
"build:extension": "turbo run build -F @mediago/extension",
"pack:extension": "pnpm build:extension && tsx scripts/pack-extension.ts",
"lint": "oxlint .",
"lint:fix": "oxlint --fix .",
"format": "oxfmt --write .",
"format:check": "oxfmt --check .",
"check": "pnpm lint && pnpm format:check && turbo type:check",
"pack:electron": "pnpm core:build && pnpm build:electron && pnpm -F @mediago/electron run pack",
"release:electron": "pnpm core:build && pnpm build:electron && pnpm -F @mediago/electron run release",
"docs:dev": "pnpm -F @mediago/docs run docs:dev",
"docs:build": "pnpm -F @mediago/docs run docs:build",
"type:check": "turbo type:check",
"core:dev": "pnpm --filter @mediago/core-build run dev",
"core:build": "pnpm --filter @mediago/core-build run build",
"player:dev": "pnpm --filter @mediago/core-build run dev",
"player:build": "pnpm --filter @mediago/core-build run build",
"deps:download": "tsx scripts/download-deps.ts",
"deps:download:all": "tsx scripts/download-deps.ts --all",
"prepare": "husky"
},
"lint-staged": {
"*.{ts,tsx,js,jsx,mjs,cjs}": [
"oxlint --fix",
"oxfmt --write"
],
"*.{json,css,md,html,yml,yaml}": [
"oxfmt --write"
]
},
"keywords": [],
"license": "MIT",
"devDependencies": {
"@types/node": "^24.9.2",
"cross-env": "^10.1.0",
"husky": "^9.1.7",
"knip": "^6.1.1",
"lint-staged": "^16.4.0",
"oxfmt": "^0.42.0",
"oxlint": "^1.57.0",
"tsx": "^4.20.6",
"turbo": "^2.9.1",
"typescript": "^6.0.2"
}
}