Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions electron.vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ export default defineConfig(({ mode }) => {
},
},
server: {
host: "127.0.0.1",
port: webPort,
// 代理
proxy: {
Expand All @@ -102,6 +103,7 @@ export default defineConfig(({ mode }) => {
},
},
preview: {
host: "127.0.0.1",
port: webPort,
},
build: {
Expand Down
21 changes: 12 additions & 9 deletions electron/main/utils/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@ export const appName = app.getName() || "SPlayer";
*/
export const port = Number(import.meta.env["VITE_SERVER_PORT"] || 25884);

const devRendererUrl = process.env["ELECTRON_RENDERER_URL"]?.replace(
"://localhost",
"://127.0.0.1",
);
Comment on lines +35 to +38
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

建议同时引入渲染进程的开发端口 VITE_WEB_PORT,以便在 ELECTRON_RENDERER_URL 环境变量缺失时,能为开发环境提供更准确的回退地址。在进行字符串替换时,遵循项目惯例使用简单的 string.replace 方式。

export const webPort = Number(import.meta.env["VITE_WEB_PORT"] || 14558);

const devRendererUrl = process.env["ELECTRON_RENDERER_URL"]?.replace(
  "://localhost",
  "://127.0.0.1",
);
References
  1. When modifying existing code, retain simple and clear implementations (like string.replace) over more complex, robust alternatives (like regex) if the original implementation is sufficient.


/**
* 默认 AMLL TTML DB Server
* @returns string
Expand All @@ -43,24 +48,22 @@ export const defaultAMLLDbServer = "https://amlldb.bikonoo.com/ncm-lyrics/%s.ttm
* @returns string
*/
export const mainWinUrl =
isDev && process.env["ELECTRON_RENDERER_URL"]
? process.env["ELECTRON_RENDERER_URL"]
: `http://localhost:${port}`;
isDev && devRendererUrl ? devRendererUrl : `http://127.0.0.1:${port}`;

/**
* 歌词窗口加载地址
* @returns string
*/
export const lyricWinUrl =
isDev && process.env["ELECTRON_RENDERER_URL"]
? `${process.env["ELECTRON_RENDERER_URL"]}/#/desktop-lyric`
: `http://localhost:${port}/#/desktop-lyric`;
isDev && devRendererUrl
? `${devRendererUrl}/#/desktop-lyric`
: `http://127.0.0.1:${port}/#/desktop-lyric`;

/**
* 加载窗口地址
* @returns string
*/
export const loadWinUrl =
isDev && process.env["ELECTRON_RENDERER_URL"]
? `${process.env["ELECTRON_RENDERER_URL"]}/web/loading/index.html`
: `http://localhost:${port}/web/loading/index.html`;
isDev && devRendererUrl
? `${devRendererUrl}/web/loading/index.html`
: `http://127.0.0.1:${port}/web/loading/index.html`;
Comment on lines 50 to +69
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

建议利用 mainWinUrl 作为基础路径来简化 lyricWinUrl 和 loadWinUrl 的定义,减少重复代码。此外,在开发环境下(isDev 为 true)如果 devRendererUrl 缺失,应回退到渲染进程端口(webPort)而非后端服务端口(port)。

export const mainWinUrl =
  isDev ? (devRendererUrl || "http://127.0.0.1:" + webPort) : "http://127.0.0.1:" + port;

/**
 * 歌词窗口加载地址
 * @returns string
 */
export const lyricWinUrl = mainWinUrl + "/#/desktop-lyric";

/**
 * 加载窗口地址
 * @returns string
 */
export const loadWinUrl = mainWinUrl + "/web/loading/index.html";