电子节点响度-发布后找不到可执行文件

时间:2019-01-02 11:46:31

标签: electron electron-builder

我正在尝试使用Quasar Framework构建应用程序,并在ElectronJS的帮助下部署到Windows。

应用程序的必备条件之一是,该应用程序将能够控制设备的音量,为此,我正在使用node-loudness软件包。

该功能在开发模式下可以正常工作,但是在构建到生产环境后失败。我正在使用electron-builderasar: 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 :(得分:0)

要解决我的问题,我需要在代码中包括一些解决方法。

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)
}