Roe*_*mer 9 javascript node.js npm
我已经开发出一种节点NPM包主要是一个包装(使用节点的http
,https
并且querystring
对于一个特定的JSON API模块).它是在Coffeescript中构建的,并使Node.js服务器能够与此API通信.Api主要是REST.
现在我希望这个库也可用于浏览器.这意味着http
需要用XMLHttpRequest
(异步)替换对模块的调用.在我看来,我会为适配器制作一个包装器.对于Node环境,此适配器会将所有调用传递给http
模块,将浏览器环境传递给XMLHttpRequest
对象.
是否有一个很好的方法来构建一个构建系统,以便npm包包含两个版本,我也可以在Github上发布简单的"浏览器版本"?然后,节点包可以通过require('package-name')
并且应该将JS文件(用于浏览器)放在目录中.
我查看了Component,这对于客户端软件包管理非常好,但问题仍然是如何创建不同的构建环境.
使用browserify交叉开发node.js和浏览器的示例解决方案:https : //github.com/amitayd/grunt-browserify-jasmine-node-example(和我的博客文章中的讨论)。
特别是对于具有不同的Browser / Node.js实现,请检查PersistentReaderWriter.js。
一旦有了一些可以开始使用browserify的模板,并且意识到了一些陷阱,您可能会发现您也想将其用于小型库。
编辑:请注意,如果您浏览模块,则isBrowser()检查不应通过检查是否定义了module和module.exports来完成,因为Browserify的包装程序将在模块上下文中对其进行定义。相反,在我的示例中,我检查了要定义的窗口。
归档时间: |
|
查看次数: |
1871 次 |
最近记录: |