Backbone.js应用程序使用CommonJS结构与node.js和client一起工作

Nic*_*ick 3 javascript commonjs node.js requirejs backbone.js

我正在研究一种使用CommonJS结构编写BackboneJS应用程序的方法,该结构允许使用Javascript模块.然后,此应用程序可以在节点的客户端或服务器端工作.

我已经研究过requirejs和其他类似的选项,但你必须以一种特定的方式编写应用程序,在我看来这看起来非常简单.

我也看了browserifywebmake这需要你的代码和所需的任何模块,并将其合并到与丢失的(要求)方法,一个js文件.这一切都很聪明,但客户端的代码有点乱.

是否存在可以通过其commonJS格式编写的代码,编译与浏览器兼容的所有必需模块并吐出可以在浏览器中使用的Javascript文件(或多个)而不必担心的事情关于缺少需要的方法?更好的是为骨干应用量身定制的解决方案.

rha*_*per 6

在浏览器中使用CommonJS结构化模块有很多选项:

  1. RequireJS 2.0.2支持配置选项cjsTranslate.cjsTranslate: true在r.js优化器配置中将此设置为将使用define样板包装任何包含在CommonJS格式中的模块.详情请见此处.
  2. Cajon是一个新的模块加载器,构建在RequireJS之上,支持CommonJS格式的模块(也是由RequireJS作者@jrburke编写的).
  3. 瓦罗依赖管理工具(再次@jrburke)必须包括和CJS模块转化为AMD模块的能力.这可能不是一个很好的选择,但值得包括完整性.
  4. 您可以编写一个服务器组件,自动将代码包装在AMD define样板中.我相信这是他们在SoundCloud上采取的方法- 请参阅此博文.

编辑2014年8月29日:目前最好的做法是使用生成的源映射进行Browserify,以便于客户端调试.