请教 electron 解包与打包 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
KnightNic
V2EX    macOS

请教 electron 解包与打包

  •  
  •   KnightNic 2020-12-29 18:11:56 +08:00 3838 次点击
    这是一个创建于 1746 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有一款应用的 win 平台程序包,想把它重新打包成 macOS 应用,网上找了写资料尝试后都失败了。 目前试过的方法是解压 asar 文件,然后用 npm run ****,可没一个能成功的。因为本人非程序员,实在无从下手。如果能打包成 macOS 应用的话,就省的开虚拟机了。 所以请教下这个能不能实现,或者有什么具体的方法

    第 1 条附言    2020-12-31 14:09:51 +08:00
    Update:

    折腾了两天,终于打包成功!!!
    1. 安装 npm 、electron 、asar 、electron-packager 、npm-check-updates
    2. asar extract app.asar 解压目录(最好提前执行一下 electron app.asar 看看能不能正常运行)
    3. 删除解压目录里的 node_modules
    4. 执行 npm install
    5. 执行 npm outdated,查看需要更新的模块,然后执行 ncu,更新 package.json 里的模块版本信息,接着 ncu -u 更新
    6. 根据提示再次执行 npm install
    7. 然后 npm run xxx,这里的打包脚本命令在 package.json 里有,找到自己需要的


    最后发现新打包的 app 要比原来的流畅,有木有原理不怎么懂,能用就行~
    第 2 条附言    2021-01-01 00:32:39 +08:00
    有了个新问题,这个图标好不好更换的,拖进去直接是空白的
    9 条回复    2020-12-31 13:56:13 +08:00
    yang991178
        1
    yang991178  
       2020-12-29 20:02:05 +08:00
    解压 asar 然后 npm 全局安装 electron,直接命令行 electron xxx.js 试试能不能成
    ZeoKarl
        2
    ZeoKarl  
       2020-12-29 20:07:54 +08:00 via iPhone
    理论上来说,app.asar 是可以跨平台执行的,但是不排除代码里面不适配或者写死路径啥的,还要看看有没有引入原生的模块啥的
    KnightNic
        3
    KnightNic  
    OP
       2020-12-29 20:33:41 +08:00
    @yang991178 有空来试试
    KnightNic
        4
    KnightNic  
    OP
       2020-12-29 20:34:25 +08:00
    @nieyujiang 有点复杂,看代码大学的时候说不定还能凑合点儿,现在估计不行了
    narmgalaxy
        5
    narmgalaxy  
       2020-12-29 20:57:06 +08:00
    一楼正解
    AV1
        6
    AV1  
       2020-12-29 22:05:53 +08:00
    参考
    https://www.electronjs.org/docs/tutorial/application-distribution#with-prebuilt-binaries

    去下载预先编译好的二进制程序,把之前的 win 版 electron 程序里的
    electron/resources/app
    移动到 macOS 版相应的目录下
    electron/Electron.app/Contents/Resources/app/
    Midnight
        7
    Midnight  
       2020-12-29 22:33:37 +08:00
    直接这样移植是没用的,根本跑不起来
    因为 Windows 和 macOS 很多地方都不一样,需要在 node 里做兼容处理,如果人家都没处理过,那么你怎么打包都无济于事
    KnightNic
        8
    KnightNic  
    OP
       2020-12-30 01:24:11 +08:00
    @DOLLOR 亲测可行,感谢就是启动的时候有点报错,不过目前不影响使用
    KnightNic
        9
    KnightNic  
    OP
       2020-12-31 13:56:13 +08:00
    @yang991178 试了下这个方法也可以呢然后又发现直接 electron app.asar 也可以,只是跟 @DOLLOR 提供的方法一样,打开都会有个报错信息,但是后续使用正常。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1029 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 23:00 PVG 07:00 LAX 16:00 JFK 19:00
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86