从打包的 asar app electron 访问 extraFiles electron-builder
access to extraFiles electron-builder from packaged asar app electron
我有一个 Electron 应用程序 运行 可以完美地融入开发环境,日志引擎可以写入文件(使用 winston.js)。
项目的结构是这样的 :
当我 运行 electron-builder 打包我的应用程序时,我有这个结构 :
- 我的 app.asar 文件在 Resources 目录中
- 我的日志文件在 data/logs
在开发环境中,我使用此 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 应用程序将日志存储在默认位置
我有一个 Electron 应用程序 运行 可以完美地融入开发环境,日志引擎可以写入文件(使用 winston.js)。
项目的结构是这样的 :
当我 运行 electron-builder 打包我的应用程序时,我有这个结构 :
- 我的 app.asar 文件在 Resources 目录中
- 我的日志文件在 data/logs
在开发环境中,我使用此 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 应用程序将日志存储在默认位置