如何打包资源
只想写个图形小工具,本质上还是调用写好的 java 程序,因为我觉得在命令行里面来回切目录,复制路径等操作实在是太麻烦了。
那么我现在已经搞定了如何从 electron 的 js 事件里获得文件路径,我也搞定了如何在 electron 的 main.js 里面创建新的进程执行指令,那么如何使用到打包好的 jar 包或者其他资源呢?
直接看下 packages.json 里面吧。
{
"name": "....",
"version": "1.0.0",
"description": "",
"main": "main.js",
"scripts": {
"start": "export FAVOR=debug && electron .",
"pack": "electron-packager ./ yourAppName --platform=darwin --arch=x64 --app-version=0.0.1 --app-bundle-id=com.xxxx.yourAppName --out=build --overwrite --extra-resource='./extraResources'"
},
"build": {
"extraResources": [
"./extraResources/**"
]
},
}
需要注意的是 build 里面加了一个 extraResources
,另外,通过 electron-packager 打包的参数里面也加上一个 --extra-resource='./extraResources'
然后打包的时候就可以把你想要的任何文件打包进去了,jar 也好,python 脚本也好。
如何引用资源
需要注意的是,debug 运行和 release 运行是不一样的,这里,我们就需要一个东西来在运行时区分,我现在是 debug 还是 release。
注意上面的 json 脚本中,有一个 export FAVOR=debug
,这个相当于在 debug 运行的时候加入了一个环境变量。
怎么读取环境变量呢?在 main.js 里面这样读取:
console.log("favor: " + process.env.FAVOR)
接下来就是区分运行时来获取资源路径了。
function getResPath() {
if (isDebug) {
return "./extraResources"
} else {
return process.resourcesPath + "/extraResources"
}
}
仅此记录一下,给可能需要的人。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。