громкость электронного узла - исполняемый файл не найден после выпуска - PullRequest
0 голосов
/ 02 января 2019

Я пытаюсь создать приложение, используя Quasar Framework, и я развертываюсь в Windows с помощью ElectronJS.

Одна из реквизитов приложения, приложение сможет контролировать громкость устройства, и для этой задачи я использую пакет node-loudness.

эта функция работает, как и ожидалось, в режиме разработки, но не работает после запуска в производство. Я создаю приложение, используя electron-builder с asar: true, и пакет node-loudness уже распакован.

Куда бы приложение ни обратило внимание на adjust_get_current_system_volume_vista_plus.exe, как вы можете видеть в следующем стеке .:

Error: spawn %LocalAppData%\Programs\app.name\resources\app.asar\adjust_get_current_system_volume_vista_plus.exe ENOENT
    at i (file:///%LocalAppData%\Programs\app.name/resources/app.asar/js/vendor.js:8:117490)
    at a (file:///%LocalAppData%\Programs\app.name/resources/app.asar/js/vendor.js:8:117825)
    at ChildProcess.e.emit (file:///%LocalAppData%\Programs\app.name/resources/app.asar/js/vendor.js:8:117708)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)"

но этот файл был распакован при сборке и может быть найден в следующем месте %LocalAppData%\Programs\app.name\resources\app.asar.unpacked\node_modules\loudness\impl\windows\adjust_get_current_system_volume_vista_plus.exe

1 Ответ

0 голосов
/ 03 января 2019

, чтобы решить мою проблему, мне нужно было включить некоторые обходные пути в мой код .:

1 - я заменил loudness пакет на mwl-loudness

Библиотека node.js для управления выходным томом системы из https://github.com/LinusU/node-loudness. добавлен опасный пакет для электрон, исправлено, что электронное приложение не может найти правильный путь который в папке "app.asar.unpacked".

2 - я включил псевдоним в пакет loudness

module.exports = {
  resolve: {
    alias: {
      loudness$: 'mwl-loudness/index.js'
    }
  }
};

3 - После упаковки файлов я скопировал adjust_get_current_system_volume_vista_plus.exe в каталог app.asar.unpacked.

afterPack: async function (context) {
  var fs = require('fs')
  var path = require('path')
  var origin = path.join(context.appOutDir, 'resources/app.asar.unpacked/node_modules/mwl-loudness/impl/windows/adjust_get_current_system_volume_vista_plus.exe')
  var destiny = path.join(context.appOutDir, 'resources/app.asar.unpacked/adjust_get_current_system_volume_vista_plus.exe')
  fs.copyFile(origem, destiny, console.log)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...