2012-10-01 34 views
0

我們正在考慮爲我們的下一個服務器端應用程序提供node.js。但我們不希望我們的客戶能夠查看我們的應用程序的代碼。我們能否以編譯的形式部署以node.js編寫的應用程序?如果是,那麼如何?以編譯的形式部署node.js

回答

3

也許你可以混淆所有的代碼......我知道這是不是像編譯,但至少,它會避免看代碼的客戶端的99%:d

這裏是另一個話題:How can I obfuscate (protect) JavaScript?

好運

+0

你不能編譯javascript,afaik。混淆可能是唯一的方法。 – chovy

2

我不相信這是可能的。我的意思是,從技術上講,我想你可以將所有東西都寫成本機C++擴展,但是這會破壞使用節點的目的。

1

如前所述,在Node.js中沒有真正的編譯,因爲nod可執行文件基本上編譯javascript代碼。

許多開發者使用谷歌的Closure Compiler這真的只是「再壓縮」 - 刪除註釋,空格,等等 - 「優化」 - 轉換JavaScript代碼來更有效的JavaScript。但是,由此產生的代碼通常仍然是可解析的JavaScript代碼(雖然很難閱讀!)。看看這個相關的流的更多信息:Getting closure-compiler and Node.js to play nice

幾個選項可能會有所幫助:

  1. 制定「專有」業務邏輯的自定義模塊並將其託管的安全服務器上
  2. 總結將「專有」業務邏輯轉換爲一個java類或可執行文件,該文件在Node中被稱爲外部進程。js
  3. 在由Node.js調用的單獨的應用程序服務器上提供「專有」業務邏輯作爲編譯的Web服務。

這是由你來定義你的應用程序的哪些部分應該被視爲「專有」,但作爲一般規則,我不會將HTML和相關的JavaScript分類 - 發送到我們的瀏覽器 - 作爲「專有」 。我的建議是在這裏謹慎。

最後,我發現了一個有趣的方法可能會有所幫助下面流,但它是相當先進的,可能是相當馬車:Secure distribution of NodeJS applications

希望幫助...