源码: https://github.com/lanlejiudunle/Electron/tree/master/electron-demo
用electron-builder打包后,出现白屏,不显示任何东西
对electron-quick-start
做了目录更改,如下
根本问题还是在electron-builder
的package.json上的配置有问题。如果把相关资源文件移动app
目录,那么需要两个package.json
来配置
1.项目根目录下的package.json
,这里项目根目录是D:\project\electron\
electron-builder
的build
配置,必须在这个package.json
{
"build": {
"productName": "Imqianduan",
"appId": "com.electron.imqianduan-com-app",
"copyright": "© 2018 IMQIANDUAN.COM",
// files必须设置所有文件,不能设置"./app/**/*",否则会报错
"files": [
"./**/*"
],
"directories": {
"output": "./dist",
// app默认就是"./app"目录,可以不设置
"app": "./app"
}
},
"scripts": {
"start": "electron ./app/index.html",
"dev": "electron --inspect=5858 ./app/index.html",
"packager": "electron-packager ./app Imqianduan --out ./dist --appVersion 1.0.0 --overwrite",
"build:dir": "electron-builder --dir",
"build": "electron-builder"
},
"repository": "",
"keywords": [
"Electron",
"quick",
"start",
"tutorial",
"demo"
],
"devDependencies": {
"electron": "^3.0.7",
"electron-builder": "^20.38.2",
"electron-packager": "^12.2.0"
}
}
2.app
目录下的package.json
,这个package主要配置app相关的属性
{
// app名称,不能是中文,不能包含大写
"name": "imqianduan",
// app版本
"version": "1.0.0",
// app 描述
"description": "我是前端",
// app作者
"author": "懒了就炖了 <master@imqianduan.com>",
"license": "MIT",
// 入口文件
"main": "./main.js",
// 依赖
"dependencies": {}
}
这里还引出一个问题,上面name
值不能包含大写字母,否则vscode会提示错误
如上,如果app是基于vue
的,那么dependencies
可能是这样的
"dependencies": {
"axios": "^0.17.1",
"echarts": "^3.8.5",
"querystring": "^0.2.0",
"vue-router": "^3.0.1",
"vuex": "^3.0.1"
}
打包不再报错,执行npm run build:dir
,npm run build
D:\project\electron>npm run build:dir
> @ build:dir D:\project\electron
> electron-builder --dir
• electron-builder version=20.38.2
• loaded configuration file=package.json ("build" field)
• writing effective config file=dist\builder-effective-config.yaml
• installing production dependencies platform=win32 arch=x64 appDir=D:\project\electron\app
• packaging platform=win32 arch=x64 electron=3.0.7 appOutDir=dist\win-unpacked
D:\project\electron>
D:\project\electron>npm run build
> @ build D:\project\electron
> electron-builder
• electron-builder version=20.38.2
• loaded configuration file=package.json ("build" field)
• writing effective config file=dist\builder-effective-config.yaml
• installing production dependencies platform=win32 arch=x64 appDir=D:\project\electron\app
• packaging platform=win32 arch=x64 electron=3.0.7 appOutDir=dist\win-unpacked
• building target=nsis file=dist\Imqianduan Setup 1.0.0.exe archs=x64 oneClick=true perMachine=false
• building block map blockMapFile=dist\Imqianduan Setup 1.0.0.exe.blockmap
D:\project\electron>
执行结果:
electron通过reactjs自定义最大化、最小化、关闭功能
无边框窗口是不带外壳(包括窗口边框、工具栏等),只含有网页内容的窗口。 这些是 BrowserWindow 类上的选项。透明窗口是没有阴影部分。利用css设置自定义区域可拖动。
nsis中文手册及安装
对electron目录调整后,打包白屏?而使用electron-packager打包没问题,什么原因呢?
electron .命令是什么?能换成别的目录吗?当然可以~
electron-builder相对electron-packager有更丰富的的功能,支持更多的平台,同时也支持了自动更新,electron-builder打出的包更为轻量,并且可以打包出不暴露源码的setup安装程序
window下使用 electron-packager将electron打包成exe可执行文件
electron快速开始入门