Electron加密打包文件

1.安装 electron-packager

注意:先复制一份package.json文件到./app目录下,(千万记住这一点,我在这步这折腾了好几个小时才弄明白)然后记得改下package.jsonmain:main.js的路径(去掉app/

使用命令 npm install --save-dev electron-packagerelectron-package安装到本地

安装完成后,package.json中会多出一条electron-package的版本号配置信息

"devDependencies": {
    "electron-packager": "^6.0.0",
    "electron-prebuilt": "^0.37.3",
    "gulp": "^3.9.1"
  }

electron-packager的打包基本命令是:

electron-packager <location of project> <name of project> <platform> <architecture> <electron version> <optionaloptions>

命令有点长,每次要是都用这个命令来打包得蛋疼死,所以我们改进一下:
·在package.json中添加脚本

"scripts": {
    "start": "electron .",
    "packager": "electron-packager ./app mclans --all --out ./OutApp --version 0.37.3 --overwrite --icon=./app/img/icon/icon.ico"
  }
注意:我的命令行里的icon文件路径

在命令行里运行:
npm run-script packager
这样就会启动electron-packager来进行打包命令了,第一次打包要下载相关文件,一定要翻墙,下载时常根据网络状况而定。

打完包以后 会在./OutApp下生成对应平台的包

运行包下的.exe文件 就可以看到我们的应用了

2.加密资源

可以看到,在每个包下的resources文件夹里的app文件夹 就是我们写的程序,这样我们的代码就是暴露在用户电脑上的,这非常的不安全,还好electron 自带了加密功能。
安装 asar:npm install --save-dev asar
安装完成以后,就可以使用asar命令讲程序文件打包了,
asar pack ./app app.asar

执行完毕以后,在./下可以看到app.asar文件,把他复制到./OutApp/mclans.../resources/下,然后把resources下的app文件夹删除,运行resources上层的appName.exe文件可以启动应用了。

3.使用nsis制作安装程序

下载安装nsis(自己百度去)
启动nsis,选择新建脚本:向导
程序应用信息

第一步:程序基本信息,根据自己实际情况填写就行;
第二步:安装程序图标,自己选择。安装程序文件就是要输出的.exe文件,随便放。安装程序语言根据自己实际需要选择;

第三步闪屏和背景属性:根据自己实际情况选择;
第四步目录授权:根据自己实际情况选择;
第五步选择文件:选择我们输出的文件的目录;

第六步创建快捷图标:根据自己实际情况选择;
第七步指定安装完成后的动作:基本就是启动本程序即可;
第八步卸载相关属性:根据自己实际情况选择;

完成!!
完成之后摁F9或者选择NSIS->编译并运行 编译并运行
运行完毕之后

即可在应用跟目录下看到我们的安装文件

至此使用electron编写应用以及打包部分,就完成了,下一步就是使用jQuery编写具体程序了,我先去学会儿,过几天在写。


  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
在使用electron和bytenode进行加密打包时,你可能会遇到一些问题。一个常见的问题是在控制台遇到报错"Invalid or incompatible cached data"。这个问题通常是由于使用bytecode编译js文件时,所使用的node环境与electron集成的node环境不兼容所导致的。为了解决这个问题,你可以尝试以下方法: 1. 下载一个与electron-node环境一致的node版本,并重新安装。这样可以确保编译生成的字节码文件electron环境兼容。 2. 在electron的调试窗口中打开控制台,并输入bytecode编译指令,重新生成一个jsc文件。然后重新加载这个文件,看是否能解决问题。 引用\[1\]中的作者就是通过这种方法解决了类似的问题,并分享给大家。 另外,bytenode还有一些局限性。例如,它在与主程序交互、进行异步操作和引用外部模块时存在一些限制。在字节码中使用require会提示未定义,这个问题在2015年就有人提出了,但至今仍然存在\[3\]。因此,对于这些问题,bytenode的实用性会有所打折扣。 总结来说,使用electron和bytenode进行加密打包时,你可以尝试下载与electron-node环境一致的node版本来解决兼容性问题。同时,要注意bytenode的一些局限性,特别是在与主程序交互、进行异步操作和引用外部模块时的限制。 #### 引用[.reference_title] - *1* *2* *3* [Electron源代码的终极加密保护方案——使用bytenode(包括不兼容错误的处理技巧)](https://blog.csdn.net/renzhezixuan/article/details/108159106)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值