将 Chaplin 与 Browserify 和 jQuery 结合使用需要您执行以下操作:
Backbone = require('backbone')
$ = require('jquery')
Backbone.$ = $
Chaplin = require('chaplin')
每次 require('chaplin')
时都必须写入此内容。如果您在任何使用 Chaplin 的模块中错过了这一点,并且该模块首先被初始化,那么 Chaplin 将被破坏,因为它将初始化为使用 Chaplin 而不使用 jQuery,但稍后您最终会设置 Backbone.$
到 jQuery
,卓别林并没有预料到这一点。
这将破坏的一个示例是卓别林的 View ,它将初始化为使用“appendChild”而不是“append”作为容器方法。但该元素将是一个没有appendChild 的jQuery 选择器。
是否有任何方法可以强制 Browserify 中的顺序,以便每个使用 Chaplin 的模块都不需要此样板代码?
最佳答案
您可以创建一个运行初始化步骤并导出 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 .
关于javascript - 如何使用 Chaplin 和 Browserify 避免冗余的 Backbone/jQuery 初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33676018/