node webkit & nodebob 使用心得
最近重構 Minesweeper Solver,卻因為 win10 update,造成之前的遊戲版本無法運行,只好自幹遊戲。
但是自己寫的 GUI 感覺很麻煩,於是就找到 minesweeper online 的 js code,但又不想用瀏覽器玩。
(因為螢幕分析會因為瀏覽器不同而不好做)
我必須把這東西轉成有自己視窗的 exe。
js 怎轉 exe ? 有這麼神奇的東西嗎 ? 我在想 node js 都出來了 ( js 能活在後端 ),
js 的 GUI 應該也不遙遠了。
果不其然,在幾年前就有 node webkit 這咚咚。
還蠻容易的,第一次用就上手。
將 index.html 放進去,再加個 package.json 就可以運行。
但我想要的是獨立於 node js 和 node webkit 的獨立 exe 檔。
依照 node webkit 官方的說法,可以用工具或 DIY。
當然要先 DIY 看看啦。
先 zip 成 .nw 檔,然後將 nw.exe 在 cmd 下 copy 到 .nw 後面。
copy /b nw.exe+app.nw app.exe
恩,本機 (laptop) 可以 run,試試看移植。
desktop 說他不能 Run ...
那來試試看工具吧。
nodebob 看起來最簡單,因為是 bat 和 shell script 寫的。
然後就掉坑了。
C:\Users\dici8\Desktop\nodebob>build.bat
nodebob v0.1
---
Creating app package
7-Zip 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
Error:
7-Zip cannot find the code that works with archives.
Creating executable
複製了 1 個檔案。
C:\Users\dici8\Desktop\nodebob\release\nw.exe
複製了 1 個檔案。
Copying files
Deleting temporary files
找不到 C:\Users\dici8\Desktop\nodebob\release\app.nw
Done
恩 ... 看起來 7z 有點問題,結果發現是他 buildTools 裡的 7z 不能 Run ...
(就算加了 x 權限也不能用)
那就 載個 7z 來用吧。
我載的是 .exe 64-bit x64 7-Zip for 64-bit Windows x64 (Intel 64 or AMD64)
恩,沒毛病。
然後是將 7z 加到環境變數。
搜 檢視進階系統工具 -> 環境變數 -> 挑 Path 點 新增 -> 挑 7z 資料夾
(我的是在 "C:\Program Files\7-Zip")
cmd 測一下 7z 。
將 nodebob\buildTools 的 7z 資料夾重命名(名字不要是7z就好),然後創一個空的 7z 資料夾。
目的是為了讓 7z 指令直接用到環境變數的 7z 程式。
C:\Users\dici8\Desktop\nodebob>build.bat
nodebob v0.1
---
Creating app package
7-Zip 17.00 beta (x64) : Copyright (c) 1999-2017 Igor Pavlov : 2017-04-29
Scanning the drive:
1 folder, 9 files, 1606807 bytes (1570 KiB)
Creating archive: C:\Users\dici8\Desktop\nodebob\release\app.nw
Add new data to archive: 1 folder, 9 files, 1606807 bytes (1570 KiB)
Files read from disk: 9
Archive size: 670780 bytes (656 KiB)
Everything is Ok
Creating executable
複製了 1 個檔案。
C:\Users\dici8\Desktop\nodebob\release\nw.exe
C:\Users\dici8\Desktop\nodebob\release\app.nw
複製了 1 個檔案。
Copying files
Deleting temporary files
Done
原來是我沒有將 7z.dll 加上 x 權限 orz
回覆刪除都要加才可以 Run...
所以我懷疑 DIY 不行也是這問題。
chmod a+x *