не удается получить доступ к чтению из дополнительных ресурсов после пакета с electron builder

#javascript #node.js #electron

Вопрос:

Я работаю с приложением, которое читает/записывает файлы json, расположенные в extraResources каталоге, созданном electron-builder

Пакет.json

 "build": {
      "files": [
        "src/*",
        "src/json/*",
        "src/scss/*",
        "src/views/*"
      ],
      "extraResources": [
          {
            "from": "./src/json/",
            "to": "extraResources",
            "filter": [
              "**/*"
            ]
          }
      ],
      "win": {
        "target": "nsis",
        "icon": "build/icon.ico"
      }
    }
 

Я пытаюсь прочитать файл json из задач.json с этим

 const loadTasks = fs.readFileSync(path.join(__dirname, 'extraResources', "Tasks.json"))

 

Но при компиляции я получаю это сообщение об ошибке в консоли:
Uncaught Error: ENOENT: no such file or directory, open '/extraResources/Tasks.json'

я не знаю, что я делаю не так, но я не могу получить доступ к дополнительным ресурсам, которые находятся вне приложения.asar

Спасибо!!!

Ответ №1:

Из electron-builder документации, extraResources находится в каталоге ресурсов приложения

Шаблон глобуса относительно каталога проекта, если он указан, скопируйте файл или каталог с соответствующими именами непосредственно в каталог ресурсов приложения (Содержимое/Ресурсы для macOS, ресурсы для Linux и Windows).

Вы можете получить каталог ресурсов с помощью process.resourcesPath

 path.join(process.resourcesPath, YOUR_EXTRA_RESOURCES_FILES);