165 lines
3.9 KiB
TypeScript
165 lines
3.9 KiB
TypeScript
// 这里定义了静态文件路径的位置
|
||
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];
|
||
}
|