以编译形式部署node.js.

时间:2012-10-01 14:39:52

标签: node.js express

我们正在考虑将node.js用于我们的下一个服务器端应用程序。但我们不希望我们的客户能够查看我们的应用程序代码。我们可以部署以编译形式在node.js中编写的应用程序吗?如果是,那怎么办?

4 个答案:

答案 0 :(得分:3)

也许你可以混淆你的所有代码......我知道这不像编译,但至少,它会避免99%的客户看到代码:D

这是另一个主题:How can I obfuscate (protect) JavaScript?

祝你好运

答案 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

可能有用的几个选项:

  1. 为“专有”业务逻辑开发自定义模块并将其托管在您的安全服务器上
  2. 将“专有”业务逻辑包装到在Node.js中作为外部进程调用的java类或可执行文件
  3. 将“专有”业务逻辑编码为在Node.js调用的单独应用程序服务器上可用的已编译Web服务。
  4. 由您来定义应用程序的哪些部分应被视为“专有”,但作为一般规则,我不会将HTML和相关的javascript(发送到我们的浏览器)归类为“专有”。我的建议是在这里明智。

    最后,我发现以下流有一个有趣的方法可能会有所帮助,但它相当先进,而且很可能是错误的:Secure distribution of NodeJS applications

    希望有帮助...