遇到的问题
electron-vue在开发环境的时候使用regedit模块获取MachineGuid时是正常的,可以获取到values值:
{
exists: true,
keys: [
'xxx',
'xxx',
'...'
],
values: {
MachineGuid: { type: 'REG_SZ', value: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' }
}
}
但是打包好了以后就拿不到注册表的values值了:
{
exists: true,
keys: [
'xxx',
'xxx',
'...'
],
values: {}
}
再使用 registryItem.values.MachineGuid.value
获取值就会报错:TypeError: Cannot read property 'value' of undefined
解决方案
这个问题的原因可能是因为打包后,安装包为32位的,所以无法获取values值。修改vue.config.js
文件中的配置,重新打包就可以了。
win: {
icon: './build/icons/icon.ico',
target: [
{
target: 'nsis',
arch: [// 不配置默认为x64
'x64',
'ia32'
]
}
]
// 以管理员权限运行
// requestedExecutionLevel: 'requireAdministrator'
},
我一开始的配置为ia32
,打包出来就是32位的,不过配置上x64
以后安装包的大小会大一倍。