hi-sass-frame/src/main/config/staticPath.ts
2024-09-08 23:46:15 +08:00

165 lines
3.9 KiB
TypeScript
Raw 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 {join} from "path";
import {HotUpdateFolder} from "./const";
import {app} from "electron";
import {URL} from "url";
const isDev = process.env.NODE_ENV === "development";
/**
* 目录名: 生产环境 | 开发环境
* 基础目录: APP目录 | src下
* __static: 基础目录/renderer | 基础目录/renderer/public
* __lib: 基础目录 | 基础目录/build/lib/*
* __common: 基础目录 | 基础目录/build/lib/common
*/
class StaticPath {
/**
* 静态文件路径 渲染进程目录下
*
* @type {string}
* @memberof StaticPath
*/
__static: string;
/**
* dll文件夹及其他os平台相关的文件路径
*
* @type {string}
* @memberof StaticPath
*/
__lib: string;
/**
* 与os无关的资源
*
* @type {string}
* @memberof StaticPath
*/
__common: string;
/**
* 增量更新文件夹
*
* @type {string}
* @memberof StaticPath
*/
__updateFolder: string;
constructor() {
const basePath = isDev
? join(__dirname, "..", "..", "..")
: join(app.getAppPath(), "..", "..");
this.__updateFolder = join(basePath, `${HotUpdateFolder}`);
if (isDev) {
this.__static = join(basePath, "src", "renderer", "public");
this.__lib = join(
basePath,
`build`,
`lib`,
`${process.platform}`,
`${process.arch}`
);
this.__common = join(basePath, "build", "lib", "common");
} else {
this.__static = join(__dirname, "..", "renderer");
this.__lib = basePath;
this.__common = basePath;
}
}
}
const staticPath = new StaticPath();
/**
* 获取真正的地址
*
* @param {string} devPath 开发环境路径
* @param {string} proPath 生产环境路径
* @param {string} [hash=""] hash值
* @param {string} [search=""] search值
* @return {*} {string} 地址
*/
function getUrl(
devPath: string,
proPath: string,
hash: string = "",
search: string = ""
): string {
const url = isDev
? new URL(`http://localhost:${process.env.PORT}`)
: new URL("file://");
url.pathname = isDev ? devPath : proPath;
url.hash = hash;
url.search = search;
return url.href;
}
/**
* 窗口入口文件
* 开发环境:""
* 产品环境src/renderer/index.html
*/
export const winURL = getUrl(
"",
join(__dirname, "..", "renderer", "index.html")
);
/**
* 窗口入口文件
* 开发环境:"/loader.html"
* 产品环境src/render/public/loader.html
*/
export const loadingURL = getUrl(
"/loader.html",
`${staticPath.__static}/loader.html`
);
export const preloadURL = getUrl(
"/preload.html",
`${staticPath.__static}/preload.html`
);
export const printURL = getUrl(
"",
join(__dirname, "..", "renderer", "index.html"),
"#/Print"
);
export const browserDemoURL = getUrl(
"",
join(__dirname, "..", "renderer", "index.html"),
"#/Browser"
);
/**
* 预加载文件
* 开发环境src/main/preload/index.ts
* 产品环境dist/electron/preload/main/preload.js
*/
export const preloadPath = isDev
? join(__dirname, "..", "..", "..", "dist", "electron", "main", "preload.js")
: join(app.getAppPath(), "dist", "electron", "main", "preload.js");
/**
* 托盘设置文件
* 开发环境:/tray.html
* 产品环境src/renderer/public/tray.html
*/
export const trayURL = getUrl(
"/tray.html",
`${staticPath.__static}/tray.html`
);
/**
* 托盘图标设置
*/
export const trayIconPath = isDev
? join(staticPath.__static, "trayIcon", "trayIcon.png")
: join(app.getAppPath(), "dist", "electron", "renderer", "trayIcon", "trayIcon.png");
export const trayTransparentIconPath = isDev
? join(staticPath.__static, "trayIcon", "transparent.png")
: join(app.getAppPath(), "dist", "electron", "renderer", "trayIcon", "transparent.png");
export const lib = staticPath.__lib;
export const common = staticPath.__common;
export const updateFolder = staticPath.__updateFolder;
export const staticPaths = getUrl("", staticPath.__static);
// process.env 修改
for (const key in staticPath) {
process.env[key] = staticPath[key];
}