3

https://github.com/mapbox/tilemill

我一直在试图弄清楚 tilemill 如何将他们的节点应用程序打包到 mac、linux 或 windows 的桌面应用程序中。我搜索了他们的 github 项目,但没有看到任何关于他们如何做到这一点的细节。

4

2 回答 2

3

他们正在使用包含的 nodejs 和库在端口 20008 和 20009 上启动一个迷你服务器,然后在 web 视图中打开它。每个目标平台都有控制节点进程的基本包装器,并打开一个指向 localhost:20009 的 webview

例如,在 Mac 上,所有内容(nodejs 和库和资产)都包含在 TileMill.app/Resources/ 下,然后在 TileMill.app/MacOS/ 下是 TileMill,它只加载 node + index.js(在 Resources/ 中)并打开 webview。

完成类似任务的一种更简单的跨平台方法是使用node-webkit。您不仅可以轻松部署,而且可以直接在 web 层内调用 nodejs,而不是使用一堆 web 回调。这意味着您可以直接访问文件等操作,而无需将客户端/服务器分开。

于 2013-10-04T23:28:43.500 回答
0

它只是一个打包的应用程序,依赖项可以在package.json分发和安装它使用,
nsis 安装程序来部署应用程序中找到,因为node.exe它没有很多依赖项(它的一个 .exe)。因此,安装时只需从 .exe 提取到本地目录,并交付应用程序,如果您浏览本地目录,您甚至会找到node_modules每个模块预安装的文件夹。

Tilemill 不会因本地 node.js 的任何更新而中断,因为它使用其固定版本node.exe

于 2013-09-21T07:00:06.947 回答