2

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

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

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

这将破坏的一个例子是卓别林的视图,它将被初始化为使用“appendChild”而不是“append”来表示容器方法。但是该元素将是一个没有 appendChild 的 jQuery 选择器。

有什么方法可以强制 Browserify 中的顺序,以便在使用卓别林的每个模块中都不需要这个样板代码?

4

1 回答 1

3

您可以创建一个运行您的 init 步骤和 export 的模块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 保证这个初始化运行一次,不管你需要多少次

于 2015-11-12T16:22:24.840 回答