electron安装错误
配置.npmrc
electron_mirror=https://npmmirror.com/mirrors/electron/
# 阿里云采用双份拷贝策略,即x.x版本的electron存储时既有 vx.x也有x.x
electron_custom_dir={{ version }}
安装electron-fix
pnpm add electron-fix
配置package.json并执行electron-fix
"scripts": {
"dev": "chcp 65001 && vite",
"build": "vue-tsc && vite build && electron-builder",
"preview": "vite preview",
"fix": "electron-fix start" // 安装完整版electron
}
electron安装运行ws库错误
采用ES modules导入ws时报错
could not resolve "bufferutil" imported by "ws". is it installed?
解决方法
pnpm add --save-optional bufferutil
pnpm add --save-optional utf-8-validate
pnpm 打包错误
这是一个由pnpm导致的问题,起初没有使用含有 sqllite3 的模块,构建是没有问题的,使用了 sqllite3 之后,在 electron-builder 进行构建时显示 xxx\pnpm.cjs 不是一个合法的 Win32 应用。
⨯ cannot execute cause=fork/exec C:\Users\17910\AppData\Local\Volta\tools\image\pnpm\10.12.3\bin\pnpm.cjs: %1 is not a valid Win32 application.
command='C:\Users\qwq\AppData\Local\Volta\tools\image\pnpm\10.12.3\bin\pnpm.cjs' rebuild bufferutil@4.0.9 utf-8-validate@6.0.5
pnpm.cjs 文件上方有一个 shebang (#!开头 ):
#!/usr/bin/env node
最初在类unix操作系统中一个文本文件带有 #! 开头,就会当做一个执行文件来运行。而 /usr/bin/env node 其实表示的是通常情况下在 Linux 系统中安装的 nodeJS 二进制文件目录,相当于 Windows上的 Node.exe 的绝对路径。放在windows上面时,这个路径就会产生错误。
解决方法:
将第一行替换为:
#!node
无法解决请查询:
github.com/v9u/sqlite_… github.com/electron-us…
控制台乱码
配置package.json
chcp 65001 && vite
Pnpm+electron-builder打包依赖错误
electron-builder打包不会自动打包隐式依赖,也就是说不会打包三方依赖引用的依赖,与pnpm的实现有关,需要拍平pnpm依赖或者手动安装
.npmrc文件加入下面的配置即可拍平
node-linker=hoisted
node regedit 打包后缺少vbs文件
Error invoking remote method 'get-3dapp-devices': Error: Command failed: cscript.exe //Nologo C:\Program Files\YourAppName\resources\app.asar\node_modules\regedit\vbs\regList.wsf A HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\App Paths\ HKCU\Software\Microsoft\Windows\CurrentVersion\App Paths\
解决方法
打包配置
"extraFiles": [
{
"from": "node_modules/regedit/vbs",
"to": "vbs"
}
],
使用时引入
const regedit = require('regedit')
regedit.setExternalVBSLocation('./vbs')