从打包的 asar app electron 访问 extraFiles electron-builder

access to extraFiles electron-builder from packaged asar app electron

我有一个 Electron 应用程序 运行 可以完美地融入开发环境,日志引擎可以写入文件(使用 winston.js)。

项目的结构是这样的 :

当我 运行 electron-builder 打包我的应用程序时,我有这个结构 :

在开发环境中,我使用此 winston 配置访问日志文件

new winston.transports.File({filename: 'data/logs/error.log', level: 'error'})

但是这个特定的路径配置只能运行进入开发模式。而且我找不到在 prod 环境中定位日志文件的好路径。

我需要在 prod 环境中使用什么样的路径来定位资源目录(或目录安装应用程序的根目录)之外的文件?

使用 Electron 应用程序管理日志的最佳实践是什么?

用于获取打包应用程序中的资源和 extraFiles 路径,如 electron-builder docs you can use process.resourcesPath

中所述
const getResourcesPath = () => {
  return process.resourcesPath;
};

const getExtraFilesPath = () => {
  return path.join(process.resourcesPath, '..'); // go up one directory
};

对于日志,Electron 为此提供了一个路径,您可以使用 app.getPath

检查
app.getPath('logs');

默认情况下,在 macOS 上为 ~/Library/Logs/YourAppName,在 Linux 和 Windows

上为 userData 目录

如果需要,您可以使用 app.setAppLogsPath 更改此默认路径

大多数 Electron 应用程序将日志存储在默认位置