2024/2/4亲测有效方法,适合小白,因为我也是小白
1.vscode打开项目,然后进入终端,再输入
vue add electron-builder
2.启动npm run electron:serve看看能否正常运行
3.开始打包
我在终端输入了npm run electron:build
然后老是失败,应该是一些包在国外啥的
于是我在项目根目录创建了一个文件.npmrc
在这个文件中我写了镜像啥的,反正我不懂粘上去就行了
registry=https://mirrors.huaweicloud.com/repository/npm/
chromedriver_cdnurl=https://mirrors.huaweicloud.com/chromedriver
electron_mirror=https://mirrors.huaweicloud.com/electron/
electron_builder_binaries_mirror=https://mirrors.huaweicloud.com/electron-builder-binaries/
4.再次在终端输入npm run electron:build
我靠咋又报错了
ExecError: C:\Users\86155\AppData\Local\electron-builder\Cache\nsis\nsis-3.0.4.1\Bin\makensis.exe exited with code ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
Output:
Command line defined: "APP_ID=com.electron.s"
Command line defined: "APP_GUID=d7b401ef-cf31-573c-ba96-be57e8adeffc"
Command line defined: "UNINSTALL_APP_KEY=d7b401ef-cf31-573c-ba96-be57e8adeffc"
Command line defined: "PRODUCT_NAME=s"
Command line defined: "PRODUCT_FILENAME=s"
Command line defined: "APP_FILENAME=s"
Command line defined: "APP_DESCRIPTION="
Command line defined: "VERSION=0.1.0"
Command line defined: "PROJECT_DIR=D:\�½��ļ��� 4\s"
Command line defined: "BUILD_RESOURCES_DIR=D:\�½��ļ��� 4\s\build"
Command line defined: "APP_PACKAGE_NAME=s"
Command line defined: "APP_64=D:\�½��ļ��� 4\s\dist_electron\s-0.1.0-x64.nsis.7z"
Command line defined: "APP_64_NAME=s-0.1.0-x64.nsis.7z"
Command line defined: "APP_64_HASH=909372A0C76C6E024ECE6D62E5C83BAEBDF7549AE7F40AA36B34218D3ED5E38998E3D3FEF0FBC1EC98BCC2CFB74F4BCDCC0586E22FAE7D482F4509451615F4B2"
Command line defined: "APP_INSTALLER_STORE_FILE=s-updater\installer.exe"
Command line defined: "COMPRESSION_METHOD=7z"
Command line defined: "ONE_CLICK"
Command line defined: "RUN_AFTER_FINISH"
Command line defined: "SHORTCUT_NAME=s"
Command line defined: "UNINSTALL_DISPLAY_NAME=s 0.1.0"
Command line defined: "ESTIMATED_SIZE=185911"
Command line defined: "COMPRESS=auto"
Command line defined: "BUILD_UNINSTALLER"
Command line defined: "UNINSTALLER_OUT_FILE=D:\�½��ļ��� 4\s\dist_electron\__uninstaller-nsis-s.exe"
Processing config: C:\Users\86155\AppData\Local\electron-builder\Cache\nsis\nsis-3.0.4.1\nsisconf.nsh
Processing script file: "<stdin>" (ACP)
Error output:
Bad text encoding: <stdin>:1
5.解决方案
打开 node_module/app-builder-lib/out/targets/nsis/NsisTarget.js
文件,在 executeMakensis
方法中加入我们所需的参数args.push("-INPUTCHARSET", "UTF8");
你先找到这个文件,然后按住ctrl+f直接找executeMakensis方法
我加入参数后的方法如下:
async executeMakensis(defines, commands, script) {
const args = this.options.warningsAsErrors === false ? [] : ["-WX"];
//此处新增
args.push("-INPUTCHARSET", "UTF8");
//结束
for (const name of Object.keys(defines)) {
const value = defines[name];
if (value == null) {
args.push(`-D${name}`);
} else {
args.push(`-D${name}=${value}`);
}
}
6.再次运行npm run electron:build
终于成功了不报错了,其实这个错误依然能得到exe应用程序但是得不到安装程序,所以解决这个错误之后,也能得到安装程序了
exe程序和安装程序在哪呢,dist_electron文件夹下面有,自己查找。
这个只是测试项目进行打包,但是实际项目并不一定适用,这个方法挺简单