electron 打包

来源:简书 分类: 文章浏览史 发布时间:2021-09-07 11:25:46 最后更新:2021-09-07 浏览:574
转载声明:
本文为摘录自“简书”,版权归原作者所有。
温馨提示:
为了更好的体验,请点击原文链接进行浏览
摘录时间:
2021-09-07 11:25:46

首先我们要安装electron-prebuilt,它是一个npm模块,因此我们可以使用npm来进行安装,它是一个electron的预编译版本。

npm install   electron-prebuilt

接下来安装electron-packager ,它也是一个npm模块,是一个用于打包electron应用的工具

npm install  electron-packager                                                                                    

electron-packager <应用目录> <应用名称> <打包平台> --out <输出目录> <架构> <应用版本>

electron-packager . ccrplayer --platform=win32 --arch=ia32 --icon=icon/ico.ico --out=dist 

因为我们项目应用了ffi模块去调用dll文件去解密一个文件,所以在打包的过程中需要将dll文件也打包进项目.

asar可以把源码打包到一个文件里面,进而获得一定的代码加密和整合的效果。但是,默认情况下,这个asar里面的文件,是无差别的打包的。会把一些无用的文件打包进去,甚至一些额外的第三方程序。对于后者,第三方程序打包到asar之后,虽然代码逻辑层面还行得通。但是执行效果上,却报错了,无法找到这些第三方程序。具体的症状就是:开发的时候,一切正常。一旦打包(打包成asar),就报错了。

electron-packager使用了--asar参数的话,您就很可能需要这两个参数:ignore 和 extra-resource。

ignore ,在将默认打包的范围内,排除掉一些不打包进去的。例如第三方资源文件,是无论如何,都不能打包到asar里面的。打包进去的话,或者没有用,占体积。或者影响程序逻辑实现,不能访问到这些第三方资源。

extra-resource,可以将第三方资源,在打包的时候,复制到app.asar的同级目录。

eg : electron-packager ./ app --asar --ignore=res/ --extra-resource=res/

注:如果要ignore的目录或文件,是很多个的话,直接在命令行里面,叠加很多个--ignore=即可。extra-resource也是类似的用法,直接在命令行里面,叠加很多个--extra-resource=即可。

因为打包的资源会被引入到resources目录下,所以程序的的相对路径一定要注意调整。最简单的方法是打包之前创建一个resources目录把资源放入该目录下,然后再引入路径进行些修改。然后打包

eg:   electron-packager . ccrplayer --platform=win32 --arch=ia32 --icon=icon/ico.ico --out=dist --asar --overwrite=force --ignore=native/supzip.dll --extra-resource=supzip.dll

我的资源是在native/supzip.dll,打包完成之后资源会在resources/supzip.dll,所以我打包之前项目中引入的项目路径就是 resources/supzip.dll。

1楼 sTmWcysy
2022-03-20 14:16:38
e
php技术微信