2012-02-12 62 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帮助我:)