如何使用Chaplin和Browserify避免冗余的Backbone / jQuery init

时间:2015-11-12 16:10:49

标签: javascript jquery backbone.js browserify chaplinjs

将Chaplin与Browserify和jQuery一起使用需要您执行以下操作:

Backbone = require('backbone')
$ = require('jquery')
Backbone.$ = $
Chaplin = require('chaplin')

每次require('chaplin')都必须写出来。如果你在使用Chaplin的任何模块中错过了一次,如果该模块首先被初始化,那么Chaplin将被破坏,因为它将初始化为使用Chaplin而不使用jQuery,但后来你最终将Backbone.$设置为{{1卓别林并不期待那样。

这将破坏的一个例子是Chaplin的View,它将被初始化为使用'appendChild'而不是'append'来容纳containerMethod。但该元素将是一个没有appendChild的jQuery选择器。

有没有办法在Browserify中强制执行该命令,以便在每个使用卓别林的模块中都不需要此样板代码?

1 个答案:

答案 0 :(得分:3)

您可以创建一个运行初始化步骤并导出Chaplin的模块。

// my-chaplin.js
var Backbone = require('backbone')
Backbone.$ = require('jquery')
module.exports = require('chaplin')

始终需要此模块,而不是直接要求chaplin

// Each module in your app
var Chaplin = require('./my-chaplin');

CommonJS保证此初始化runs once, no matter how many times you require it