【发布时间】:2021-09-30 07:59:25
【问题描述】:
NW.js 有这个称为“保护 JavaScript 源代码”的功能:https://nwjs.readthedocs.io/en/latest/For%20Users/Advanced/Protect%20JavaScript%20Source%20Code/
您的应用程序的 JavaScript 源代码可以通过编译为本机代码并由 NW.js 加载来保护。您只需将编译后的代码与您的应用一起分发即可用于生产。
使用 SDK 构建中提供的工具 nwjc 将 JS 源代码编译为本机代码。
编译后的代码不跨平台也不兼容 NW.js 版本。因此,在打包应用程序时,您需要为每个平台运行 nwjc。
我下载了适用于 Windows、Mac 和 Linux 的 SDK 分发包,并查看了其中的文件。
Windows 有一个“nwjc.exe”文件,可以使用并且可以工作。很好。
但是 Mac 和 Linux 没有 .exe,而只是一个“nwjc”可执行文件。这显然是为了分别在 macOS 和 Linux 上运行。嗯?
我使用的操作系统是 Windows。我正在 Windows 上开发我的 NW.js 应用程序,将在 Windows、Mac 和 Linux 上分发。而且我无法在 Windows 系统上运行那些 Linux/macOS 可执行文件。但我必须这样做,因为它们出于某种原因不是跨平台的。
这对我来说似乎是一个死胡同。我要么不必“保护”我的应用程序(因此它被盗/复制/损坏/被黑客入侵),或者购买两台单独的计算机(一台昂贵的 Mac 和一台用于 Linux 的 PC)并在这些计算机上执行此步骤。这当然违背了“简单”跨平台开发的全部意义。
在你这么说之前,我已经尝试过在虚拟机中运行 Linux,这很糟糕。而且 Mac 甚至不能合法地模拟 AFAIK。
这很可能会导致我的应用程序仅适用于 Windows,这真的很可悲,因为走这条路的一个主要原因是具有“简单”的跨平台性,并且“可以正常工作”。
我对此有什么遗漏吗?
PS:在“保护”阶段之前,我已经用 Uglify-JS “粉碎”了我的代码。
【问题讨论】:
标签: linux windows macos cross-platform nwjs