何為dva-boilerplate-electron
dva-boilerplate-electron 是一個 基于dva(react 輕量級腳手架)+electron 結(jié)合的快速構(gòu)建桌面程序的應(yīng)用框架
相關(guān)地址:
github: dva-boilerplate-electron
架構(gòu)說明: Electron 應(yīng)用實戰(zhàn) (架構(gòu)篇)
安裝及運行
1. 下載模板
創(chuàng)建并進(jìn)入目錄you-pro
蠢箩, 執(zhí)行下面的命令(win的cmd中链蕊,不帶$符號);
$ curl -fsSL https://github.com/sorrycc/dva-boilerplate-electron/archive/master.tar.gz|tar -xz --strip-components 2
2谬泌、安裝依賴
注意:框架需要安裝兩層依賴滔韵,一個是在you-pro
下的 開發(fā)環(huán)境依賴,一個是you-pro/app
的 運行環(huán)境依賴掌实,如果沒有安裝 運行環(huán)境依賴陪蜻,運行時會報錯。
假設(shè)已經(jīng)在you-pro
目錄下了 贱鼻,運行 npm install
安裝 開發(fā)環(huán)境依賴
進(jìn)入 you-pro/app
目錄 運行 npm install
安裝 運行環(huán)境依賴
由于網(wǎng)絡(luò)環(huán)境問題宴卖,建議使用 yarn或cnpm 來安裝依賴,這樣會少很多問題
3邻悬、運行
經(jīng)過上面的安裝過程症昏,如果沒有出現(xiàn)什么問題的話,基本上可以成功運行父丰,如果有問題肝谭,也大多是由于網(wǎng)絡(luò)原因?qū)е乱蕾嚢鼪]有安裝完整所造成的。
運行npm run dev
熱啟動, 修改代碼會自動刷新頁面
運行npm start
啟動 electron 顯示界面
4攘烛、打包
運行打包命令前 修改一下啊下you-pro
目錄下的 package.json
文件:
"scripts": {
"rebuild": "electron-rebuild -m ./app/node_modules",
}
將上面的代碼中 "rebuild" 這一行 改成如下代碼:
"rebuild":"electron-rebuild -d=https://gh-contractor-zcbenz.cnpmjs.org/atom-shell/dist/ -m ./app",
改完之后運行npm run pack
就可以生成exe 文件魏滚,并生成一個安裝包,至于為什么要這樣改坟漱,可以看一下 Electron 應(yīng)用實戰(zhàn) (架構(gòu)篇) 中關(guān)于打包的那一段栏赴。
問題點
1、asar文件
將項目打包成可執(zhí)行文件之后靖秩,在you-pro/dist/win-unpacked/resources
目錄下 有一個app
文件夾须眷,存放著我們程序運行所用到的一些關(guān)鍵文件及資源文件,這些文件我們是不希望被用戶看到的沟突,我們需要app
目錄打包成erectron中的asar文件花颗,這時候我沒只需要修改一下you-pro
目錄下的 package.json
文件,找到build -> asar
這一項惠拭,將原本的false 改成true 讓后重新運行打包命令即可扩劝。
2、img路徑問題
項目打包成應(yīng)用之后职辅,打開應(yīng)用棒呛,發(fā)現(xiàn)頁面中帶有img的組件或css中引用的img都不能正常顯示, 原因是開發(fā)環(huán)境下的路徑跟生成環(huán)境下的路徑不一致所導(dǎo)致域携,如果要生產(chǎn)環(huán)境下正常顯示圖片簇秒,需要修改一下you-pro
目錄下的.roadhogrc
文件:
{
"entry": "./src/renderer/index.js",
"outputPath": "./app/dist",
"publicPath": "", // 加入這一個屬性,值可以根據(jù)你的需要再定義
"define": {
"$dirname": "__dirname"
},
"env": {
"development": {
"extraBabelPlugins": [
"dva-hmr",
"transform-runtime"
]
},
"production": {
"extraBabelPlugins": [
"transform-runtime"
]
}
}
}
如果更改了上面的文件秀鞭,還是沒有顯示圖片趋观,請更新下roadhog
包,更新到最新版本锋边,再重新打包
至于為什么這樣做皱坛,可以去了解一下roadhog
的 配置
更多的問題點會在使用的過程中不斷更新..