将卓别林与Browserify和jQuery结合使用要求您执行以下操作:
Backbone = require('backbone')
$ = require('jquery')
Backbone.$ = $
Chaplin = require('chaplin')
必须每次
require('chaplin')
都写上。如果您在使用Chaplin的任何模块中甚至一次都错过了它,并且该模块首先被初始化,则Chaplin将被破坏,因为它将初始化为不使用jQuery使用Chaplin,但是后来您将Backbone.$
设置为jQuery
和Chaplin没想到。卓别林的View就是一个例子,它将被初始化为使用'appendChild'而不是containerMethod的'append'。但是该元素将是一个没有appendChild的jQuery选择器。
是否有任何方法可以在Browserify中强制执行该命令,以便在每个使用卓别林的模块中都不需要此样板代码?
最佳答案
您可以创建一个模块来运行您的初始化步骤并导出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。