在上篇 SinF的Electron系列之二裏我提到了,用 --extra-resource字段來加載第三方資源。
在項目開始的時候,我把第三方資源放到了根目錄的static文件夾裏,發現並無起到加載第三方資源的效果。通用查詢,發現electron-packager提供--extra-resource字段。node
具體使用方法,segmentfault
--extra-resource=./res/2.dat --extra-resource=./res/1.dat
【注意】./res 是我在根目錄下面自定義的一個第三方資源目錄,能夠任意修改。若是有多個第三方資源,能夠重複添加。
難點在於如何讀取,我以mac版本的打包文件爲例app
Contents │ ├── Framworks (electron框架文件) │ ├── MacOS │ │ ├── 項目 │ └── Resources(資源) │ │ └── electron.asar(打包後的執行文件,asar格式即加密格式,只能經過node.js的fs模塊解析) │ │ └── ...(其餘資源) │ │ └── 1.dat │ │ └── 2.dat
經常使用的「../」這裏是不行的,須要用的 node.js 中的 path模塊,代碼以下:框架
const url = path.resolve(__dirname, '..') this.datUrl = url + '/1.dat'
其中: path.resolve(__dirname, '..')表示當前目錄的父目錄的絕對路徑,即Resource 目錄的絕對路徑electron
這樣,就能夠獲取到第三方文件了。this