node webkit & nodebob 使用心得

最近重構 Minesweeper Solver,卻因為 win10 update,造成之前的遊戲版本無法運行,只好自幹遊戲。



但是自己寫的 GUI 感覺很麻煩,於是就找到 minesweeper online 的 js code,但又不想用瀏覽器玩。

(因為螢幕分析會因為瀏覽器不同而不好做)



我必須把這東西轉成有自己視窗的 exe。



js 怎轉 exe ? 有這麼神奇的東西嗎 ? 我在想 node js 都出來了 ( js 能活在後端 ),



js 的 GUI 應該也不遙遠了。



果不其然,在幾年前就有 node webkit 這咚咚。





(GitHub 上最早的 Release tag Ver)



on 15 Mar 2012 













 



 




還蠻容易的,第一次用就上手。



將 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


留言

  1. 原來是我沒有將 7z.dll 加上 x 權限 orz
    都要加才可以 Run...

    所以我懷疑 DIY 不行也是這問題。

    chmod a+x *

    回覆刪除

張貼留言

這個網誌中的熱門文章

[Antergos] disable touchpad

[Editor] 入坑 Atom => Markdown 轉 PDF