制作一个兼容浏览器和Node的Javascript库

3
我正在尝试创建一个JavaScript库,希望它能兼容浏览器和Node。然而,Node API提供了一些浏览器没有的功能(例如压缩)。我知道可以在JavaScript中编写此功能以实现跨平台兼容性,但是Node原生压缩可能会表现更好,因为它更接近底层。
我应该如何区分适用于浏览器的代码和使用Node API的代码?
我认为有以下几种选择:
1. 创建两个独立的脚本,一个用于Node,一个用于浏览器。 2. 使我的代码找出它所处的环境并相应地采取行动。 3. 让所有代码都相同,但失去了在Node中所具有的一些性能优势。
我应该怎么做来解决这个问题?

2
我的首选是您的第一个建议。我的第二选择是您的第二个建议。我不会选择第三个。 - nnnnnn
我可能会使用RequireJS及其Node适配器。这将允许我分享至少一些代码。 - Juho Vepsäläinen
@nnnnnn 我也对解决这个问题很感兴趣。有没有办法确保一个Javascript库可以在多个Javascript实现(如Rhino、Node.js和浏览器端Javascript)中正常工作? - Anderson Green
使用 https://github.com/component/component ,不要使用任何异步的东西。你还可以抽象出浏览器不兼容的部分(例如使用 node zlib 进行压缩,使用适用于浏览器的版本),或者只需添加一个桥接程序即可。 - Jonathan Ong
这个问题能帮到你吗?https://dev59.com/mnA75IYBdhLWcg3wkJ71 - starbeamrainbowlabs
1个回答

4
我知道这是一个老问题,但今天使用Browserify可以轻松地实现。 Browserify允许您使用require()语法编写nodejs模块,并将它们轻松转换为浏览器兼容的代码!
他们甚至移植了你提到的zlib,因此该依赖项没有问题。
我希望这可以帮助未来的读者,Browserify帮助了我 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接