Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以编译形式部署node.js_Node.js_Express - Fatal编程技术网

以编译形式部署node.js

以编译形式部署node.js,node.js,express,Node.js,Express,我们正在考虑下一个服务器端应用程序的node.js。但是我们不希望我们的客户能够查看我们应用程序的代码。我们能否以编译的形式部署node.js中编写的应用程序?如果是,那怎么办?我认为这是不可能的。我的意思是,技术上,我想你可以把所有的东西都写为本地C++扩展,但是这会破坏使用节点的目的。 也许你可以混淆所有代码…我知道这与编译不同,但至少可以避免99%的客户机查看代码:D 这是另一个话题: 祝你好运 但是我们不希望我们的客户能够查看我们应用程序的代码 如果您将代码发送给您的客户,他们将能够“查

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

我认为这是不可能的。我的意思是,技术上,我想你可以把所有的东西都写为本地C++扩展,但是这会破坏使用节点的目的。

也许你可以混淆所有代码…我知道这与编译不同,但至少可以避免99%的客户机查看代码:D

这是另一个话题:

祝你好运

但是我们不希望我们的客户能够查看我们应用程序的代码

如果您将代码发送给您的客户,他们将能够“查看您的应用程序代码”。从技术上讲,“运行代码”的过程就是“查看应用程序的代码”

拥有一个完全编译的代码版本肯定会让人感觉“更安全”,但他们仍然有一些可用形式的代码副本。他们仍然可以对零件进行反向工程或做其他事情。这件事实际上涉及到许可证

这是一个例子。他的话是:

写一份许可证,找一位律师来追查违规者

否则,您应该自己托管这些内容,并允许公众访问


任何形式的混淆、缩小、编译都将成为“窃取代码”的一个减速点。最好是拥有法律追索权。

如前所述,Node.js中没有真正的编译,因为nod可执行文件基本上是动态编译javascript代码

许多开发人员使用谷歌的,它实际上只是“缩小”——删除注释、空格等——以及“优化”——将javascript代码转换为更高效的javascript。但是,生成的代码通常仍然是可解析的javascript代码(尽管很难阅读!)。有关更多信息,请查看此相关流:

以下几个选项可能会有所帮助:

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

    最后,我发现以下流具有一种有趣的方法,可能会有所帮助,但它相当先进,可能有很多问题:


    希望这有帮助…

    你不能编译javascript,好吧。混淆可能是唯一的方法。