javascript - 如何使用 Chaplin 和 Browserify 避免冗余的 Backbone/jQuery 初始化

标签 javascript jquery backbone.js browserify chaplinjs

将 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/

相关文章:

javascript - 当 Internet 连接丢失时,将 FORM 数据保存在客户端 PC 上

javascript - Jquery延迟功能不起作用

jquery - 网络驱动程序异常 : Message: unknown error: jQuery is not defined error in robot framework

javascript - Backbone.js 点击事件不适用于触摸

javascript - 从node.js发送数据到客户端js的最佳方式

javascript - Node.js:回调值相互依赖

javascript - Google 气泡图自定义工具提示列不呈现

javascript - 背景网格未附加我的自定义单元格

javascript - 为前端应用程序保存用户数据

Javascript,在 React 应用程序中分配给函数组件中的 {},代码审查