我们正在考虑将node.js用于我们的下一个服务器端应用程序。但我们不希望我们的客户能够查看我们的应用程序代码。我们可以部署以编译形式在node.js中编写的应用程序吗?如果是,那怎么办?
答案 0 :(得分:3)
也许你可以混淆你的所有代码......我知道这不像编译,但至少,它会避免99%的客户看到代码:D
祝你好运答案 1 :(得分:3)
但我们不希望我们的客户能够查看我们的应用程序代码。
如果您要向客户端发送代码,他们将能够“查看您的应用程序代码”。从技术上讲,“运行代码”的过程是“查看应用程序的代码”。
拥有完整编译的代码版本肯定会感觉“更安全”,但他们仍然拥有一些可用形式的代码副本。他们仍然可以逆向工程或做其他事情。这个东西真的归结为许可证。
这是一个related answer。他的引用是:
编写执照并聘请律师追捕违规者
否则,您应该自己托管这些内容并允许公共访问。
任何形式的混淆,缩小,编译只是在“窃取你的代码”的过程中的速度提升。简单地拥有法律追索权可能要好得多。
答案 2 :(得分:2)
我不相信这是可能的。我的意思是,从技术上讲,我猜你可以将所有内容都写成本机C ++扩展,但这会破坏使用节点的目的。
答案 3 :(得分:1)
如前所述,Node.js中没有真正的编译,因为nod可执行文件基本上可以动态编译javascript代码。
许多开发人员使用谷歌的Closure Compiler实际上只是“缩小” - 删除评论,空白等 - 并“优化” - 将javascript代码转换为更高效的JavaScript。但是,结果代码通常仍然是可解析的javascript代码(尽管很难阅读!)。查看此相关信息流以获取更多信息:Getting closure-compiler and Node.js to play nice
可能有用的几个选项:
由您来定义应用程序的哪些部分应被视为“专有”,但作为一般规则,我不会将HTML和相关的javascript(发送到我们的浏览器)归类为“专有”。我的建议是在这里明智。
最后,我发现以下流有一个有趣的方法可能会有所帮助,但它相当先进,而且很可能是错误的:Secure distribution of NodeJS applications
希望有帮助...