评论
非常欢迎您贡献和关心 AppImage!不幸的是,大多数开发人员都离开了这个项目,我对 linux 了解不多。 |
好啊,为什么不。 不幸的是,我对 AppImage 生态系统没有太多经验(而且我是一名应对 COVID-19 压力的医生)。然而,Linux 和 CNC 是我放松的爱好。 任何人都知道将 nodejs 应用程序打包到 .AppImage 或 .deb 中的“快速而肮脏”的好教程吗? |
我可以建议将它打包成 docker 镜像吗?可能比将其打包为 deb 容易得多。 |
尝试构建 AppImage。 (…) gm 转换:无法打开文件 (/tmp/electron-builder-N3DabI/0-2-linux.iconset/icon_128x128x32.png) [找不到文件]。 我是否缺少带有图像/图标资源文件的 git 子模块或存储库…? |
好的。
您必须在浏览器中手动打开 127.0.0.1:8000 才能在此构建中打开 GUI。 |
在接下来的几天里,我将尝试为构建问题创建一个补丁。 如何提交补丁? |
这能在树莓派上运行吗?是否可以对此进行测试? |
使用 Docker 怎么样?#595 |
谢谢丹尼尔,它在 Docker 上运行良好——也在树莓派上。 |
嗨,我在 Arch 上,docker 方式不起作用,因为它无法读取设备。我尝试使用 –privileged、指定开发人员和其他一些方式运行,但都没有用。我怀疑它在 Linux 上根本不起作用。 因此,我研究了其他方法并提出了一些解决方案。最后,我还构建了一些 Arch PKGBUILD(用于最新的标签和 git),可以自动构建 appimage 并将其集成到 Arch 环境中。 我注意到从 janschiefer 的拉取请求中获取了一些内容,但所有图标仍然丢失。也许应该重新检查拉力。 在我的 appimage 版本中,浏览器会与服务器控制台一起自动打开。有些情况关闭浏览器,服务器还在后台运行,无法关闭。所以,我发现让它可见更好。我更喜欢直接在 Linux 系统中集成 appimage 而不是依赖它的集成方法。 但是,也可以单独启动 appimage,尽管没有集成,但它会启动浏览器。我对 server.js 添加了一个小修改来实现这一点。 所以,这是我的笔记,也可以应用于其他 Linux 系统(也许可以将某些内容集成到文档中): Arch 上的 LaserWeb4
运行:仅运行服务器+应用程序 通过 electron-builder 创建 Appimage( https://github.com/LaserWeb/lw.comm-server/pull/80/files )
运行:运行服务器+应用程序仅 工具
用于 Arch 的 PKGBUILD |
我刚刚创建了一个 pull request 来修复 dockerfile #647 包服务器确实有缺陷。似乎 node-gyp 无法访问系统端口并失败,即使具有 root 权限也是如此。 |
@joesantosio 我合并了你的 pr #647 关于系统端口。这可能是由于缺少/不兼容的 libusb 和 libudev 造成的,因为@QuirkyCort写在第 648期? |
现在我正在运行@easytarget具有较新 nodejs 版本的 fork 取得了很好的成功。我的理解是这是相当多的工作。想法是最终将 easytarget 版本拉回主 LaserWeb4。 @easytarget: 知道你什么时候发布你会发出拉取请求吗? |
当然,当@easytarget叉子准备好了,我们将把它拉到 LW。 |
@cprezzi顺便说一句,我没有其他方式可以与您交流,我正在开始使用 Go 编写解耦 API。 |
@joesantosio 为什么你认为我们需要一个 go 版本? |
首先,我不认为我们本身需要一个 Go 版本,也不需要将所有下一个咆哮作为一种意见,仅此而已。 在我看来,我们确实需要一个与前端完全分离的后端。为了实现这一点,沟通已经到位,这使得分离变得更容易、更灵活。您可以让前端随心所欲地运行,而后端甚至可以在较小的微控制器上运行(理论上)。解耦还意味着服务器不太依赖前端,反之亦然,这意味着您可以在任一堆栈上做出更好的更改,您可以为更多前端或更多后端分配人员,事情往往会发展得更快一些在那种环境下,因为模块化有助于理解开发思想。 因为,在我看来,这是一个很好的改变,所以这次最好“正确”地做(不是说它“坏”,只是说它可以“更好”。 架构是我认为可以改进的一件事。例如,一种类似于 DDD 的模式,用于更好地分离关注点和一般模块化。 我只是发现 Go 是一种更好的整体语言和后端方面的体验。 |
综上所述,我只是停留在 Go 的想法上。我确实认为,在我看来,至少应该使用 TypeScript,但第一步可能是设置架构、解耦、模块化和单元测试,以便无论使用何种语言,它都能保持稳定。 |
后端已经解耦。它只是可以选择嵌入 Web 前端并通过 http 提供服务。只有 socket.io 是(前端和后端)都需要的依赖项,其他一切都是独立的。 如果你想要一个纯后端,你可以只删除 http 服务器并删除 app 文件夹。 但我更喜欢为 LaserWeb 或任何其他前端选择嵌入式网站,因为用户不必安装任何前端应用程序而只需使用网络浏览器就非常方便。它还为我们提供了使用 electron 编译独立 exe(带有集成后端的前端)的选项。 我还想生成一个带有嵌入式通用“机器控制”或“gcode 发送器”前端(如 octo-pi)的版本。 后端非常简单。基本上是串行网关的套接字。我认为不需要在后端方面进行太多更改。好吧,它根本不是模块化的,但维护起来很快(至少对我而言 ;))。 我看到前端更需要维护和开发。@easytarget已经开始使用更新的依赖项和附加功能的新版本。我们需要讨论他的版本发布后的下一步。 |
是的,我可以看到所有人都拥有相同包裹的优势。我认为仍然有一些方法可以保持两者解耦的一体式软件包。 好吧……它并不是真的那么容易维护 :p 但我理解你。我正在考虑就我如何看待这种工作方式提出一个简单的 PR 提议(首先放弃 Go 和语言更改),但由于其他人已经在处理经过审查的版本,因此从那里开始非常有意义。 |
LaserWeb4似乎已经放弃了对 Linux 的支持。对于许多用户来说,这是一个主要问题,因为 LaserWeb 是目前唯一适用于 GRBL 用户的“严肃”激光雕刻解决方案。
但是我无法真正理解这一点,因为我能够使用 2020 年 4 月 12 日的当前开发分支 dev-es6 在 Linux 上运行该程序而不会出现重大问题。
只需运行:
npm run installdev (安装所有依赖项)
npm start (编译并启动服务器+应用程序)
……你准备好了。
我唯一需要弄清楚的是如何从当前的开发分支构建一个合适的 AppImage 或 .deb ……
有什么意见或建议吗?
顺便说一句:我正在使用 Ubuntu Focal beta 预发布版。