将卓别林与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

09-27 01:28