2012-02-12 63 views
3

我正在嘗試製作一個JavaScript庫,我寧願與兼容瀏覽器和節點。但是,在瀏覽器中沒有提供節點API中提供的某些功能(例如壓縮)。我知道可以用JavaScript編寫這個功能,所以它可以交叉兼容,但節點本地壓縮可能會執行得更好,因爲它的級別要低得多。製作瀏覽器和節點兼容的Javascript庫

我該如何在瀏覽器兼容的代碼和使用節點API的代碼之間進行拆分?

我看到它的方式,我可以做下列之一:

  • 使2個獨立的腳本,一個節點,一個用於瀏覽器
  • 讓我的代碼,弄清楚它是在環境和採取相應的行動
  • 讓我所有的代碼是相同的,但失去了某些性能方面的改進,我就不得不在節點

我應該怎麼做才能解決這個問題?

+2

我的首選是您的第一個建議。我的第二選擇是你的第二個建議。我不會做第三個。 – nnnnnn 2012-02-12 05:25:57

+0

我可能會使用RequireJS及其節點適配器。這將允許我分享至少一些代碼。 – 2012-02-12 09:32:42

+0

@nnnnnn我也很想找到解決這個問題的方法。有沒有什麼方法可以確保Javascript庫與多個Javascript實現(例如Rhino,Node.js和瀏覽器端JavaScript)一起工作? – 2012-12-10 23:47:57

回答

4

我知道這是一個老問題,但是,今天可以很容易地用Browserify。 Browserify允許您使用require()語法編寫nodejs模塊,並將它們輕鬆轉換爲瀏覽器投訴代碼!

他們甚至移植了你提到的zlib,所以依賴性是可以的。

我希望這可以幫助未來的讀者,browserify幫助我:)