项目基于VUE,使用VUE-cli 3创建,然后执行
vue add electron-builder
添加Electron-Builder
在执行
npm run electron:build
的时候,会打包失败,错误日志如下(敏感信息已打码),
{
Error: C:\Users\{
我的windows账户名}\AppData\Local\electron-builder\Cache\nsis\nsis-3.0.4.1\Bin\makensis.exe exited with code ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
Output:
Output:
Command line defined: "APP_ID=com.electron.{我的项目名称}"
Command line defined: "APP_GUID=c587bd21-8cd2-5b34-93a3-ad3ca404cd06"
Command line defined: "UNINSTALL_APP_KEY=c587bd21-8cd2-5b34-93a3-ad3ca404cd06"
Command line defined: "PRODUCT_NAME={我的项目名称}"
Command line defined: "PRODUCT_FILENAME={我的项目名称}"
Command line defined: "APP_FILENAME={我的项目名称}"
Command line defined: "APP_DESCRIPTION="
Command line defined: "VERSION=0.1.0"
Command line defined: "PROJECT_DIR=D:\Test\{我的项目名称}"
Command line defined: "BUILD_RESOURCES_DIR=D:\Test\{我的项目名称}\build"
Command line defined: "APP_PACKAGE_NAME={我的项目名称}"
Command line defined: "APP_64=D:\Test\{我的项目名称}\dist_electron\{我的项目名称}-0.1.0-x64.nsis.7z"
Command line defined: "APP_64_NAME={我的项目名称}-0.1.0-x64.nsis.7z"
Command line defined: "APP_64_HASH=8EE6D7EDADFDD46851BD6424FB67BD9E98CD6B405D6B319E3DD582FF7DED068210BD65C46FD93EB98D0DBD012D447DA4E0AD599DFC6A2BD62993EACC16BD3F64"
Command line defined: "APP_INSTALLER_STORE_FILE={我的项目名称}-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={我的项目名称}"
Command line defined: "UNINSTALL_DISPLAY_NAME={我的项目名称} 0.1.0"
Command line defined: "ESTIMATED_SIZE=159797"
Command line defined: "COMPRESS=auto"
Command line defined: "BUILD_UNINSTALLER"
Command line defined: "UNINSTALLER_OUT_FILE=D:\Test\{我的项目名称}\dist_electron\__uninstaller-nsis-{我的项目名称}.exe"
Processing config: C:\Users\��\AppData\Local\electron-builder\Cache\nsis\nsis-3.0.4.1\nsisconf.nsh
Processing script file: "<stdin>" (ACP)
Error output:
Error output:
!include: could not find: "C:\Users\{我的windows账户名}\AppData\Local\Temp\t-bDWVX6\0-messages.nsh"
Error in script "<stdin>" on line 75 -- aborting creation process
at ChildProcess.childProcess.once.code (D:\Test\{
我的项目名称}\node_modules\builder-util\src\util.ts:243:14)
at Object.onceWrapper (events.js:273:13)
at ChildProcess.emit (events.js:182:13)
at maybeClose (internal/child_process.js:978:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:265:5)
exitCode: 1,
alreadyLogged: false,
code: 'ERR_ELECTRON_BUILDER_CANNOT_EXECUTE' }
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! {
我的项目名称}@0.1.0 electron:build: `vue-cli-service electron:build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the {
我的项目名称}@0.1.0 electron:build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\{
我的windows账户名}\AppData\Roaming\npm-cache\_logs\2020-12-16T05_39_35_234Z-debug.log
从错误日志上来看,产生此错误的原因是,nsis插件找不到了。但是我打开对应目录,很明显,nsis是存在的。然后我发现一个关键点,那就是路径中出现了乱码
Processing config: C:\Users\��\AppData\Local\electron-builder\Cache\nsis\nsis-3.0.4.1\nsisconf.nsh
显然,是因为我的windows账户名是中文,但是在打包过程中,有某些插件不能正确识别中文导致的。
问题的根源已经找到了。怎么办呢。别人出现这个问题,都是项目名称或者路径里出现了中文,改掉就是了,我这个是AppData文件夹路径出现中文,怎么改?
处理办法我想到了以下几个
经过一系列的baidu,google,bing。终于,在一篇博文中发现了解决方案。
打开 node_module/app-builder-lib/out/targets/nsis/NsisTarget.js文件,在 executeMakensis 方法中加入我们所需的参数。
//node_module/app-builder-lib/out/targets/nsis/NsisTarget.js
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}`);
}
}
经测试,问题完美解决
文章浏览阅读1.4w次,点赞14次,收藏78次。软件:Visual C++版本:6.0语言:简体中文大小:34.26M安装环境:Win11/Win10/Win8/Win7硬件要求:[email protected] 内存@4G(或更高)下载通道①百度网盘丨下载链接:提取码:dg2n[更多软件]:点击进入管家「软件目录」!_visual c++安装教程
文章浏览阅读2.7w次,点赞2次,收藏8次。新路由3 newifi3 d2 高恪魔改固件,请在breed中先刷入底包,然后启动路由器进入底包系统后,再在底包系统里面网页web升级固件,选择魔改进行升级,切记必须这样操作。压缩包包含了底包和固件解压密码 123下载地址:https://u13909188.pipipan.com/fs/13909188-384246318..._新路由3高恪5.0nat1
文章浏览阅读298次。导读:我们生活在一个嘈杂、混乱的世界中。生活中,我们有很多“权威”和“专家”,他们标榜自己是内行人,宣称自己掌握着该领域的真理,而我们需要做的只有两个字——接受。但事实上..._唯快不破的人为什么定
文章浏览阅读746次。首先我们大家在写页面的时候可能回经常遇到checkbox、radio等一些使选中或者是不选中的问题。这是我在项目当中做的时候发现的一个小知识点,把它赶紧记录下来。以便以后复习与巩固。 现把代码写出来再解释: function operateCheckOrRadio() { var sForm = document.getElementById("sform"); var sStatus = d..._flutter checkbox用变量初始化无法设置为选中状态
文章浏览阅读1.1k次。UE5——问题——MediaPlayer的使用播放视频注意点_ue mediaplayer
文章浏览阅读311次,点赞9次,收藏7次。非接触式电子体温计主要利用红外测温原理,一切温度高于绝对零度(-273.35℃)的物体,由于分子热运动,物体会不停地向外辐射能量。物体辐射能量的大小与它的表面温度有十分密切的关系。因此,通过测量物体辐射的能量,就能够测量出物体的温度。本用户手册中的非接触式电子体温计就是利用这种测量方法,实现测量人体体温的功能。
文章浏览阅读4.4k次,点赞2次,收藏2次。篇一:程序员简历自我评价程序员简历自我评价本人勤奋踏实,工作认真负责,自学能力强;性格开朗,容易与人相处,注重团队协作精神,且能承受较大压力。注重专业基础学习和实践能力的培养,在校期间不仅做过多个课程设计暑假期间也去过单位实践过,对java编程和网站开发具有浓厚的兴趣。篇二:优秀的程序员自我鉴定优秀的程序员自我鉴定以下一篇是一名优秀并且有工作经验的程序员的自我鉴定范文:大家好,我叫xxx。我性格开朗,乐于与人交往,诚实,正直,有教强的上进心,较强的学习能力,在学校团学会的工作使我组织_程序员自我评价
文章浏览阅读1.2k次,点赞26次,收藏14次。vue的vue-resource和axios介绍_vue-resuorce
文章浏览阅读907次。mysql复习一:复习前的准备1:确认你已安装wamp2:确认你已安装ecshop,并且ecshop的数据库名为shop二 基础知识:1.数据库的连接mysql -u -p -h-u 用户名-p 密码-h host主机2:库级知识2.1 显示数据库: show databases;2.2 选择数据库: use dbname;2.3 创建数据库_在 goods_name 列上加普通索引
文章浏览阅读507次。敏捷软件开发宣言 摘要:我们正在通过亲身实践以及帮助他人实践,揭示更好的软件开发方法。通过这项工作,我们认为: 个体和交互 胜过 过程和工具 可以工作的软件 胜过 面面俱到的文档 客户合作 胜过 合同谈判 响应变化 胜过 遵循计划虽然右项也具有价值,但我们认为左项具有更大的价值。Kent Beck James Grenning Robert C._敏捷软件开发宣言
文章浏览阅读93次。转自http://www.cnblogs.com/answer1991/archive/2012/05/08/2489844.html ActivityGroup在实际的开发中是十分常见的,在我使用过的Android应用中,十个应用里面有九个应用的主界面都是使用ActivityGroup的。说起ActivityGroup,在国内好像直接使用它开发的并不多,基本都是使用Ta..._android 类似于微博tab,动态添加tab,并实现拖拽排序,编辑等
文章浏览阅读490次。仅供学习使用。执行命令git init,发现文件夹出现.git目录即说明创建本地仓库成功。创建的文件名为空,拓展名是bashrc,所以要开启文件的拓展名选项并检查该文件的格式是否为Bash RC源文件。工作区的文件创建或修改后通过git add提交到暂存区,暂存区的文件通过git commit提交到仓库。创建一个测试用的文件夹,进入后右键打开Git Bash,设置用户信息。ATT:红色的是工作区的文件,绿色的是暂存区的文件。GIT的流程分为三大块:工作区、暂存区、仓库。_请确保本地完成了 git 的全局配置