我正在尝试使用Quasar Framework
构建应用程序,并在ElectronJS
的帮助下部署到Windows。
应用程序的必备条件之一是,该应用程序将能够控制设备的音量,为此,我正在使用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
答案 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)
}