今天遇到了一个奇怪的事情,项目在本地运行
npm start
的时候可以正常的使用,但将其使用electron-builder打包后,原先可以使用的项目却不能用了,而且也没有任何的错误提示
使用electron-builder打包时,
默认情况
下会对项目进行
asar
处理
Asar是一种简单的、广泛的存档格式,它的工作原理如下tar它不需要压缩就将所有文件连接在一起,同时具有随机访问支持
此时项目中的一些依赖就无法进行链接了,从而模块的造成了莫名失效
在package.json文件中对
build选项进行配置
时,设置
"asar":false
关闭默认的asar压缩行为
使用
electron
时调用了
node
js
模块
,在vscode调试时没有问题,打成exe包后运行报找不到module的erro。这个错误是因为
打包
时没有把
使用
的module编译,解决办法是手动在package.json文件中dependencies里添加
使用
的
模块
然后
打包
就可以了。
Error: Unresolved
node
modules: bufferutil, utf-8-validate
at D:\**\
node
_modules\app-
builder
-lib\src\util\packageDependencies.ts:112:21
From previous event:
at Collector.resolveUnresolvedHoisted (D:\...
最近一直再写
node
js,跟客户对接接口时给了一份dll文件,需要调用里面的方法(
使用
edge-js
模块
),在经过长时间的奋斗后终于实现了
node
js调用dll,最后
使用
electron
-package打了一个build包(带源码),测试通过。
在上线的时候需要
打包
成exe安装文件,我们的项目是用的
electron
-
builder
打包
exe文件的,
打包
结束后程序直接报错,找不到dll文件,看了一...
使用
的是:
Electron
Builder
文档为:https://nklayman.github.io/vue-cli-plugin-
electron
-
builder
/guide/#installation
开发完成后
打包
,由于内部文件引用了
electron
-log,
打包
后发现提示Cannot find module,于是开始寻找问题所在:
查看了一些资料后,检查外层的package.json中的dependencies发现很全
"dependencies": {
"core-js":
在
electron
做的客户端项目中实现一个功能,用js写可能有些困难,所以直接把一个网络上找的实现了该功能.exe可执行文件放进项目中,然后代码上直接执行该文件实现功能。
__dirname指向指向被执行 js 文件的绝对路径,拼接上放入的exe文件的位置。然后
使用
node
的child_process中的exeFile来进行调用。
const execFile = require('child_process')
const path = require('path')
const
此处用到的
打包
发布应用程序的工具是
Electron
Forge
1.导入
Electron
Forge到项目工程目录
npm install @
electron
-forge/cli --save-dev
npx
electron
-forge import
npx @
electron
-forge/cli import
2.创建一个发布版本
npm run make
3.查看发布版本
发布版本软件包在当前目录的out文件夹中
打包
发布错误解决
Making for the fo