【发布时间】:2020-08-18 20:48:25
【问题描述】:
我正在开发一个 Electron 应用程序。 我的 src 文件夹中有几个 JSON 文件需要在应用初始化(设置、配置等)期间复制到用户文件夹。
在开发模式下以及当我对 JSON 文件执行import 时,它运行良好。
但根据我的需要,readFileSync 是实现此功能的最佳方式。
var srcPath = path.resolve(__dirname, '../config/settings.json')
fs.readFileSync(srcPath)
我在运行打包的 exe 应用程序(在 asar 中)时遇到错误。 收到这样的错误消息:
Error: ENOENT: no such file or directory, open
'C:\Users\username\Desktop\NodeJS\branches\Electron
\myApp\dist\electron\My-App-win32-x64\resources\config\settings.json'
readdirSync() 也因为同样的原因不能工作。
我了解我的相对路径在打包版本中有所不同 我检查了 asar 文件,但似乎找不到我的 JSON 文件。不确定我是否正确检查,因为它是由 Webpack 捆绑的。
本例中我的文件位于:
C:\Users\username\Desktop\NodeJS\branches\Electron\myApp\src\config\settings.json
我怎样才能做到这一点?
有没有办法强制电子(我正在使用带有 Quasar 框架的 Electron-Packager)将我的 JSON 文件包含在打包的应用程序中?
Webpack 不会捆绑 JSON 文件吗??
想法?请帮忙!
【问题讨论】:
-
我需要从我的 srcPath(dev 目录)中读取。但由于我使用的是
__dir,所以当我使用打包的应用程序(dist 文件夹中的 .exe)运行时,路径会变得不同。不能真正做绝对路径,因为它会弄乱其他开发人员的代码。
标签: node.js json vue.js electron fs