0

我想在我的新项目 Coffee + Marionette + Require.js 中使用,但我遇到了模块加载查询的问题。模块会在主应用启动回调后启动;

# main.coffee  
require.config
    paths:
        # ... 
        app: '/js/app/app'
        marionette: '/js/vendors/backbone.marionette'
    shim:
        # ...
        'marionette':
            deps: ['backbone']
            exports: 'Marionette'
        'app':
            deps: ['marionette']
            exports: 'App'


require ['app'], (App) ->
    App.start()


# module.coffee
define ['app'], (App) ->
    MyModule = App.module('MyModule');
    MyModule.foo = ->
        console.log 'bar'
    return MyModule


# app.coffee
define (require) ->
    App = new Marionette.Application
    App.addInitializer ->
        require 'module'
        console.log 'App inited'

    App.on
        'start': ->
            console.log 'App started'

    return App


# Output
App inited
App started
Module inited

如果我想在初始化程序中使用他,我必须如何定义模块?

4

1 回答 1

0

Marionette 模块系统旨在成为 require.js 的简单替代方案。我不鼓励同时使用两者,因为你会一直遇到循环依赖问题,特别是如果你想有一个“每个文件一个类”的组织。请注意,requirejs 为您提供了木偶模块的所有功能以及更多功能(异步加载、项目构建等)。

从 Marionette 文档中阅读更多内容

于 2013-10-09T01:01:30.113 回答