国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

webman-electron 使用webman開發(fā)windows桌面程序

Ace華

開源地址:

https://gitee.com/vip_huage/webman-admin-electron (保持同步)
https://github.com/Mr-ShiHuaYu/webman-admin-electron (主倉庫)

基本情況

使用electron框架,封裝了webman,使得webman直接變成客戶端,運(yùn)行后,自動啟動webman服務(wù),退出軟件后,自動關(guān)閉所有webman進(jìn)程及子進(jìn)程。

編譯好的下載地址,windows 可直接下載使用

藍(lán)奏云:
webman-admin-electron-win-0.0.1-x64.7z:
https://wwck.lanzoub.com/ijpmV2tsl94j

webman-admin-electron-win-0.0.1-x64.exe:
https://wwck.lanzoub.com/iQ6pO2tsmjde

gitee

https://gitee.com/vip_huage/webman-admin-electron/releases/tag/0.0.1

github

https://github.com/Mr-ShiHuaYu/webman-admin-electron/releases/tag/0.0.1

使用說明

一定不能放在含有有中文的目錄
一定不能放在含有空格的目錄
例如,以下目錄均不行
C:\Program Files //不行,有空格
D:\軟件\webman-admin-electron // 不行,含有中文目錄

雙擊 electron-webman.exe運(yùn)行
用戶名:admin
密碼:admin

此項目為electron和webman的結(jié)合,將webman項目和php放在resources\extraResources下,會自動啟動服務(wù),軟件關(guān)閉后,會自動關(guān)閉所有webman進(jìn)程及子進(jìn)程。
倉庫源地址是electron-egg,我將其改為可根據(jù)setting.json動態(tài)配置,以及適配webman
源倉庫地址:
https://gitee.com/dromara/electron-egg
源倉庫官方文檔:
https://www.kaka996.com/

部分原軟件的設(shè)置沒有遷移過來,個人覺得夠用了,后續(xù)再添加

如果軟件打開后,無法正常顯示,大概是因為setting.json中的webman的port配置錯誤,請核對是否與webman項目下的config.php中的listen的端口一致

demo項目已改為兼容sqlite后,不支持原項目的所有表功能,webman官網(wǎng)只支持mysql,已注釋下面 table.render 代碼

建議在mysql上開發(fā)好后,使用navicat的數(shù)據(jù)庫遷移工具,將mysql數(shù)據(jù)庫轉(zhuǎn)為sqlite數(shù)據(jù)庫,然后,關(guān)閉代碼生成等功能

為了兼容sqlite,需要替換源webman-admin框架的2個文件,一個是
plugin/admin/app/common/Util.php
plugin/admin/app/controller/Crud.php

可以自行對比修改了什么內(nèi)容

若出現(xiàn)環(huán)境變量問題的解決方法

如果在新電腦上運(yùn)行,可能需要將resource\php8的目錄添加到環(huán)境變量中,測試中發(fā)現(xiàn),絕對路徑\php.exe 絕對路徑\windows.php 會提示 php is not recognized as an internal command,但如果將windows.php換成start.php就沒事??赡苁且驗闆]有注釋掉那個監(jiān)控進(jìn)程導(dǎo)致的。
如果在新客戶端上部署,出現(xiàn)上面這個問題的話,2個建議,一是將monitor進(jìn)程注釋,二是將resource\php8的目錄添加到環(huán)境變量中??梢允褂孟旅嬲Z句,制作成.bat文件,用戶雙擊即可添加環(huán)境變量。

setx path /m "%path%;%~dp0resources\php8.0;"

實(shí)際測試,如果不想加環(huán)境變量,則必須關(guān)閉monitor進(jìn)程,不是因為monitor進(jìn)程導(dǎo)致環(huán)境變量的問題,而是php.exe 后面在沒有環(huán)境變量的環(huán)境下,就不能跟2個php文件,所以,在交付給客戶的時候,建議關(guān)閉monitor進(jìn)程

11524 39 43
39個評論

hatn

cool 這就很棒棒了

  • Ace華 2023-12-18

    嘻嘻,謝謝,我已經(jīng)用這個做了好幾個客戶端了,開發(fā)速度杠杠的

walkor

強(qiáng)

TM

點(diǎn)贊

  • 暫無評論
初心by

666

  • 暫無評論
xia

支持支持,感覺還是前后端分離打包安全點(diǎn),這樣數(shù)據(jù)庫配置也在客戶端

  • Ace華 2023-12-20

    用的是sqlite,客戶端的數(shù)據(jù),你用其他軟件做的放在,也是在客戶端呀

Mr_Deng

改了代碼,要怎樣重新生成exe呢?

  • Ace華 2023-12-20

    exe就不需要重新生成呀,你的php代碼是放在resourece\webman\下的

administrator

給樓主點(diǎn)贊
以后做桌面的話,可以嘗試一下
感謝分享

  • 暫無評論
Mr_Deng

截圖
這。。。

  • Ace華 2023-12-21

    這是你自己業(yè)務(wù)的錯誤哦

  • Ace華 2023-12-21

    我這邊測試mkdir沒問題

  • Ace華 2023-12-21

    遞歸創(chuàng)建目錄的話,你第三個參數(shù)要寫true,不能省略的

  • Mr_Deng 2023-12-21

    呃,我下載下來就雙擊的,沒有業(yè)務(wù)呢,難道跟我環(huán)境有關(guān)系

  • Ace華 2023-12-21

    你本地測試可以?或者啟動后,瀏覽器運(yùn)行webman的地址測試

  • Mr_Deng 2023-12-21

    呃,運(yùn)行測試地址后就可以了

  • Ace華 2023-12-21

    可以發(fā)代碼出來看看?

  • Ace華 2023-12-21

    mkdir的話,如果是多級目錄,如果第3個參數(shù)沒有寫,必須保證前面的目錄存在,如果是要連續(xù)創(chuàng)建的話,第3個參數(shù)必須是true

  • Jonlinc 2024-01-03

    我本地跑了也是這個錯誤,發(fā)現(xiàn)原因是沒有D盤,所以創(chuàng)建不了目錄,改了php.ini中的路徑就可以了

  • Ace華 2024-01-04

    哦哦,謝謝提醒,這個是跟我自帶的php設(shè)置有關(guān),我用的是phpenv,在php.ini中寫死了應(yīng)該

  • ye 2024-01-11

    是這個原因 建議改成當(dāng)前路徑再發(fā)下

軟飯工程師

mac 可以支持嗎

  • Ace華 2023-12-21

    暫時還沒支持,技術(shù)上支持很簡單,就是沒有mac可以測試

  • 軟飯工程師 2023-12-21

    我有mac,可以出個文檔嗎

  • 軟飯工程師 2023-12-21

    打包前的源碼可以開源嗎,我的mac上electron 安裝好了

  • Ace華 2023-12-21

    晚上回去私發(fā)你,留個郵箱

  • Ace華 2023-12-21

    晚上我源碼上傳云吧

  • Ace華 2023-12-21

    你可以先下載electron-egg,研究一下里面的javaServer那個插件,里面有關(guān)于mac的參考代碼,稍微改一改就行

  • TM 2023-12-21

    electron-egg 我之前也看過這個 看起來挺好用的,內(nèi)置挺多東西

  • 軟飯工程師 2023-12-21

    好的,謝謝

  • Ace華 2023-12-21

    源碼已發(fā)郵箱

  • 軟飯工程師 2023-12-21

    謝謝

  • Ace華 2023-12-21

    期待你的mac版本。建議可以修改我加的一個webman的插件,里面有todo的內(nèi)容,修改修改應(yīng)該就能用了

  • Ace華 2025-04-17

    開源了

奇衡三

感謝大佬的分享

  • 暫無評論
軟飯工程師

你好,請問這個地方怎么修改

    /**
     * 創(chuàng)建服務(wù)
     */
    async create(cfg) {
        this.options = cfg;
        if (this.options.enable === false) {
            return;
        }
        const hostname = this.options.hostname;

        if (['localhost', '127.0.0.1'].indexOf(hostname) === -1) {
            // 不是localhost就退出,不啟動服務(wù)
            return;
        }

        try {
            const phpPath = this.options.phpPath;
            const projectPath = this.options.projectPath;
            const stdioIgnore = this.options.stdioIgnore;

            let phpBinaryPath = path.join(UtilsPs.getExtraResourcesDir(), phpPath, "php");
            const windowsPhpPath = path.join(UtilsPs.getExtraResourcesDir(), projectPath, "start.php");
            Log.info("[addon:webmanServer] phpBinaryPath file path:", phpBinaryPath);
            Log.info("[addon:webmanServer] windowsPhpPath file path:", windowsPhpPath);

            if (!fs.existsSync(phpBinaryPath)) throw new Error('php does not exist');
            if (!fs.existsSync(windowsPhpPath)) throw new Error('start.php does not exist');
            // const processOption = stdioIgnore === true ? {stdio: 'ignore'} : {"start"};
            const processOption = "start -d";
            Log.info("[addon:webmanServer] processOption :", processOption);

            if (is.windows()) {
                this.phpProcess = spawn(phpBinaryPath, [windowsPhpPath], processOption);
                if (!stdioIgnore) {
                    this.phpProcess.stdout.on('data', (data) => {
                        Log.info(`[addon:webmanServer] ${data}`);
                    });
                }
            } else if (is.macOS()) {
                // todo macos
                this.phpProcess = spawn(phpBinaryPath, [windowsPhpPath], processOption);
                if (!stdioIgnore) {
                    this.phpProcess.stdout.on('data', (data) => {
                        Log.info(`[addon:webmanServer] ${data}`);
                    });
                }
            } else {
                // todo linux
            }

            // Log.info("[addon:webmanServer] cmdStr:", cmdStr);
            // exec(cmdStr);

        } catch (err) {
            Log.error('[addon:webmanServer] throw error:', err);
        }
    }

windows 用戶執(zhí)行 php windows.php 啟動就可以了
mac 用戶啟動webman 需要執(zhí)行

php start.php start

我這個代碼執(zhí)行npm run dev 出現(xiàn)報錯

~/electron/electron-egg-webman ? 2023-12-22 10:04:33,152 INFO 32361 [addon:security] load
2023-12-22 10:04:33,153 INFO 32361 [addon:awaken] load
2023-12-22 10:04:33,161 INFO 32361 [addon:webmanServer] phpBinaryPath file path: /Users/110/electron/electron-egg-webman/build/extraResources/php8.0/php
2023-12-22 10:04:33,161 INFO 32361 [addon:webmanServer] windowsPhpPath file path: /Users/110/electron/electron-egg-webman/build/extraResources/webman/start.php
2023-12-22 10:04:33,161 INFO 32361 [addon:webmanServer] processOption : start -d
2023-12-22 10:04:33,164 ERROR 32361 [addon:webmanServer] throw error: TypeError [ERR_INVALID_ARG_TYPE]: The "options" argument must be of type object. Received type string ('start -d')
    at normalizeSpawnArguments (node:child_process:533:5)
    at spawn (node:child_process:702:13)
    at WebmanServer.create (/Users/110/electron/electron-egg-webman/electron/addon/webman/server.js:57:35)
    at WebmanServerAddon.create (/Users/110/electron/electron-egg-webman/electron/addon/webman/index.js:30:29)
    at /Users/110/electron/electron-egg-webman/electron/preload/index.js:19:29
    at AppLoader.loadFile (/Users/110/electron/electron-egg-webman/node_modules/ee-core/core/lib/loader/ee_loader.js:259:13)
    at Index._loderPreload (/Users/110/electron/electron-egg-webman/node_modules/ee-core/ee/eeApp.js:363:33)
    at Index.createWindow (/Users/110/electron/electron-egg-webman/node_modules/ee-core/ee/eeApp.js:97:16) {
  code: 'ERR_INVALID_ARG_TYPE'
}
(node:32361) electron: Failed to load URL: http://localhost:8789/ with error: ERR_CONNECTION_REFUSED
(Use `Electron --trace-warnings ...` to show where the warning was created)

另外,我node 的版本是v20.5.1,會有問題嗎
electron-egg 的示例demo 可以跑起來
win 代碼直接在mac 上運(yùn)行會有空格或者回車字符串的問題,需要把no_moudle 刪除重新安裝依賴

  • 暫無評論
軟飯工程師

截圖起來了,但是好像驗證碼掛了

  • Ace華 2023-12-22

    只要起來了,驗證碼應(yīng)該問題不大的,刷新一下,或者,打開的時候,把那個devtools打開,關(guān)閉緩存調(diào)試

longxiaowang

win7剛打開exe文件白屏,第二次打開還是白屏,第四次再打開正常。

  • 暫無評論
Taotao

作者就很棒

  • 暫無評論
Taotao

為啥我的win11一直報錯,截圖

  • Taotao 2023-12-31

    我知道是為什么了,因為我之前開了webman的8787,端口占用了,那個wenman項目關(guān)了就好了

  • Ace華 2023-12-31

    可以改端口的,server.php中

3030879494@qq.com

剛才切換到了demo分支,報了好幾個npm包的錯誤,已經(jīng)在github上提出issus了.

wzj177

厲害呀,大佬能分享你源碼嗎

ye

大佬 源碼 git地址也分享下啊
是做了個嵌套 然后通過setting.json 修改配置及嵌套地址么?

  • wzj177 2024-01-11

    大致看了egg的文檔,應(yīng)該可以參照egg-go 集成go的方式,集成webman.可以試一下,雖然我目前沒計劃去測試

  • Ace華 2024-01-13

    可以,晚上分享

  • Ace華 2024-01-14

    源碼已發(fā)

  • ye 2024-01-15

    感謝大佬 學(xué)習(xí)下

  • Ace華 2025-04-17

    開源了

zjkal?

先支持一個

  • 暫無評論
Tinywan

加油,頂起!

  • 暫無評論
foggy

請問這個只支持sqlite 不支持MySQL嗎?

  • Ace華 2025-04-17

    客戶端,肯定優(yōu)先用sqlite,好分發(fā)軟件

hsnic

https://wwp.lanzoup.com/iNK9R1l1xuqd 用這個源碼接哪里操作?
需要先安裝

進(jìn)入目錄 ./electron-egg/

npm install
再執(zhí)行
npm run build-wz
打包?
還是直接 npm run build-wz打包?

artisan
NB??,彌補(bǔ)php的GUI開發(fā)這塊的短板
  • 暫無評論
z

可以把打包的phar放進(jìn)去嗎

  • 暫無評論
vincentzzj

請問如何修改圖標(biāo)?

  • 暫無評論
bobluan

我將數(shù)據(jù)源放到了本地數(shù)據(jù)庫,但是接口全部報紅,

happy

這個是只能本地用的,可以連接遠(yuǎn)程數(shù)據(jù)庫嗎

timber

這個能支持到windows教老的版本嗎?例如win7 winXP sp2 sp3

  • Ace華 2024-10-07

    不可以,這個取決于webman最低支持php7.4,而xp不支持php7.4

  • timber 2024-11-01

    了解,非常感謝

tanhongbin

大佬,啥時候能簡單點(diǎn)安裝 就好了 你這文檔看了 都模糊啊

牛X, 可以做軟件UI用了

  • 暫無評論
leiliang

wa_uploads storage 字段可以為空,不然上傳素材報錯
截圖

  • Ace華 2025-04-17

    數(shù)據(jù)庫storage字段設(shè)置了默認(rèn)值為local了,也開源了,更新了

yangpeng

啟動不了,直接白屏

  • Ace華 2025-04-17

    修復(fù)了bug,開源了

有安全方案嗎? 這直接源碼都給客戶了

  • bybt 2025-03-01

    得自己用electron跑個webman,就是相當(dāng)于把electron那個窗口指向webman那個地址

  • Ace華 2025-04-17

    目錄還沒有做源碼加密

sanlang

webman.phar 這種打包的可以運(yùn)行嗎? 該怎么使用呢 大佬們

  • tingyu 2025-03-19

    應(yīng)該可以,但是要改源碼,應(yīng)該是這里 electron\addon\webman\server.js

  • tingyu 2025-03-20

    我已經(jīng)實(shí)現(xiàn)了,可以正常運(yùn)行。連接如下:
    https://wwmr.lanzoul.com/b0xw8xzpc 密碼:bzfm

  • jabin 2025-03-25

    樓上源碼下載后,test我本地(win11)運(yùn)行,登錄時會報錯,提示數(shù)據(jù)庫找不到

  • tingyu 2025-03-25

    看“使用說明2”,數(shù)據(jù)庫連接字符串自己改 resources\extraResources\webman\plugin\admin\config\database.php 里面配置,我演示是寫死的。

  • jabin 2025-03-25

    感謝解答,按你的路徑放到桌面可以正常運(yùn)行了,這樣解決了php源文件暴露的問題,但是sqlite文件的放置卻又成了新的問題,后面有想到好的方案嗎?

  • tingyu 2025-03-25

    額,數(shù)據(jù)庫連接字符串改成 'database' => str_replace('phar://', '', run_path()) . '/webman_demo.db', 就行了,已測試。

jabin

webman不是支持sqlite嗎?為啥要改原文件?

  • tingyu 2025-03-22

    我說要改webman-electron-egg源碼實(shí)現(xiàn)支持webman.phar文件運(yùn)行。
    還有webman咋會不支持sqlite呢? 看文檔: http://www.wtbis.cn/doc/webman/db/config.html

  • jabin 2025-03-23

    為了兼容sqlite,需要替換源webman-admin框架的2個文件,一個是
    plugin/admin/app/common/Util.php
    plugin/admin/app/controller/Crud.php
    我是指這個,是webman-admin不支持sqlite?

  • tingyu 2025-03-23

    哦,不是和我說啊,尷尬。 webman-admin原先確實(shí)是用的mysql,現(xiàn)在作者為了做成桌面應(yīng)用轉(zhuǎn)為sqlite確實(shí)要改。

artisan

建議整個github倉庫,成熟后貢獻(xiàn)給electron-egg,推動一下php桌面開發(fā)

jabin

效果很好,如果每個平臺(mac,linux)都搞個demo,就省得自己編譯客戶端了

  • jabin 2025-03-25

    唯一缺點(diǎn)就是php源碼暴露了

  • 會飛的魚 2025-04-14

    這個沒辦法的 腳本語言 你只能做加密處理

liziyu

牛掰

  • 暫無評論
釋永戰(zhàn)

大佬厲害,先學(xué)習(xí)學(xué)習(xí)

  • 暫無評論

Ace華

760
積分
0
獲贊數(shù)
0
粉絲數(shù)
2023-02-14 加入
×
??