本文目录:
前言爬坑过程搜索一搜索二发现三发现四一番今日
前言
一番前面用electron nodejs vue python开发了一个pdf合并工具,现在的情况是:
- 用
"build": "node .electron-vue/build.js && electron-builder"
脚本可以单独打包好这个electron工程为exe可执行程序; - 用
"build-python": "pyinstaller ./py/api.py --clean --distpath ./pydist"
可以打包好python程序为exe可执行程序。 - 安装完electron的可执行程序,并将打包好的python可执行程序放到electron的安装目录下,这个程序就可以正常运行了。
但显然想要成为一款合格的可发布的程序,这是绝对不能接受的。于是一番就开始了漫长的爬坑之路。
爬坑过程
搜索一
首先搜索'如何打包electron程序',看到网上用如下脚本一起打包python和electron:
"pack-app": "./node_modules/.bin/electron-packager . --overwrite --ignore=py$ --ignore=\.env --ignore=\.vscode --ignore=old-post-backup"
一番执行后,发现一直卡着,没有任何打印,开始怀疑电脑配置不行,于是放了几个小时,发现还是不对,看来应该不是配置问题。
搜索二
于是一番就搜索'electron-packager卡住',发现网上都说是网络什么原因,要用如下脚本换一下源,
set ELECTRON_MIRROR="https://npm.taobao.org/mirrors/electron/"
一番换了之后再次尝试,发现还是没有任何打印。
发现三
于是一番注意到这个脚本其实是用的./node_modules/.bin/electron-packager
这个脚本,加一些参数。于是一番找了下这个脚本,发现目录下竟然没有这个脚本。所以我根本都还没有装这个工具,于是一番在工程根目录下用如下脚本安装了electron-packager工具,终于在目录下找到了相关的脚本。
npm install electron-packager
。
于是一番继续执行上面的pack-app这个脚本,发现还是没有任何反应。于是一番打开了electron-packager和elctron-packager.cmd这两个文件,发现electron-packager这个目录其实是用的shell脚本,也就是说只能在linux下用,而electron-packager.cmd这个目录才是windows命令。于是脚本应该改为如下这样,
pack-app": "./node_modules/.bin/electron-packager.cmd . --overwrite --ignore=py$ --ignore=\.env --ignore=\.vscode --ignore=old-post-backup"
。
但很遗憾,这样还没一直卡住。在继续看脚本,也许是参数太多了,于是一番把脚本改为简单的不加参数的形式
./node_modules/.bin/electron-packager.cmd .
。
果然,可以运行了,等待打包完成,然后拷贝build目录下的可执行程序,安装,然后到安装目录查看是否有python的可执行程序。妈蛋,还是没有。
发现四
看来靠百度是不行了,还是看打包的脚本吧。于是看到package.json里配置打包的目录似乎只有dist/electron/**/*
,于是一番分别试着加入pydist/**/*
和pydist/api/*
,尝试发现虽然yaml文件确实改了,但还是没有解决问题。