在項目中甸陌,經(jīng)常會遇到一些導出固定格式文件的需求须揣。這種需求通常需要提前準備一個模板(例如word、excel等)保存在項目中钱豁,但electron默認會對應(yīng)用程序的代碼使用asar壓縮打包耻卡,打包以后就沒有辦法獲取到模板文件了,不打包又不夠安全牲尺,代碼容易被解密劲赠,那辛辛苦苦寫的東西就會被別人輕而易舉的讀取,如果含有保密的信息或者加密的代碼呢秸谢,后果很嚴重凛澎。所以,一定要用asar打包估蹄,那模板的問題怎么辦塑煎?
我找了很多資料來尋找解決的辦法,找到一個最簡單最快捷最有效的辦法——配置package臭蚁。在項目下新建一個文件夾extra最铁,里面存放的是需要打包進安裝包的文件,將這個文件夾配置到package里面即可垮兑,不需要寫任何代碼冷尉。調(diào)用的時候只需要獲取.exe的完整路徑,然后就可以找到安裝后的模板文件夾路徑了系枪。網(wǎng)上講的最多的一個參數(shù)是extraResources雀哨,安裝應(yīng)用后路徑為```安裝目錄/resources/extra```,但是這種方法同樣要求不許用asar打包私爷。要是能放在```安裝目錄/extra```里多好雾棺,就一點問題都沒有了。
事實是衬浑,真的可以0坪啤!工秩!步驟如下:
- 搭建electron-vue框架
前面有詳細的介紹尸饺,這里就不再贅述了。Electron+Vue開發(fā)輕量級應(yīng)用 - 項目下新建文件夾extra助币,與src浪听、dist、build同級奠支,將模板文件或者其他一些想直接打包進安裝包的文件丟進去
3.配置package馋辈,將新建的文件夾配置到extraFiles中
{
"build": {
……
"extraFiles": [
"extra/**"
],
"asar": true,
"nsis": {
"oneClick": false,
"allowToChangeInstallationDirectory": true,
},
……
}
}
4.開發(fā)環(huán)境和正式環(huán)境調(diào)用extra文件夾中的內(nèi)容
import path from 'path'
import { app } from 'electron'
const helpPath = path.join(path.dirname(app.getPath('exe')), '/extra/模板文件.docx')
// 這就是文件的絕對路徑了,可以為所欲為了