2

Browserify および jQuery で Chaplin を使用するには、次のことを行う必要があります。

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

これは毎回書く必要がありますrequire('chaplin')。Chaplin を使用するモジュールでこれを一度でも見逃した場合、そのモジュールが最初に初期化されると、jQuery なしで Chaplin を使用するように初期化されるため、Chaplin が壊れますが、後で設定Backbone.$してjQueryしまい、Chaplin はそれを期待していません。

これが壊れる例は、containerMethod の「append」ではなく「appendChild」を使用して初期化されるチャップリンのビューです。ただし、要素はappendChildを持たないjQueryセレクターになります。

このボイラープレート コードが Chaplin を使用するすべてのモジュールで必要とされないように、Browserify で順序を強制する方法はありますか?

4

1 に答える 1

3

init ステップと exports を実行するモジュールを作成できます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 は、この初期化が必要な回数に関係なく、1 回実行されることを保証します。

于 2015-11-12T16:22:24.840 に答える