Javascript amd与咖啡脚本

Javascript amd与咖啡脚本,javascript,coffeescript,amd,Javascript,Coffeescript,Amd,我正在为AMD开发coffeescript和require.js的组合 问题是,我必须为require.js加载的每个模块返回一个值,我这样做了。但是coffeescript帮了我的忙并附加了:(function(){和})。这违反了我的准则 main.js require.config( { paths: { 'backbone': 'libs/AMDbackbone-0.5.3', 'underscore': 'libs/u

我正在为AMD开发
coffeescript
require.js
的组合

问题是,我必须为
require.js
加载的每个模块返回一个值,我这样做了。但是coffeescript帮了我的忙并附加了:
(function(){
})。这违反了我的准则

main.js

require.config( {
    paths: {
        'backbone':         'libs/AMDbackbone-0.5.3',
        'underscore':       'libs/underscore-1.2.2',
        'text':             'libs/require/text',
        'jquery':           'libs/jquery-1.7.1',
    },
    baseUrl: '/app'
} );

require(
        ['require', 'backbone', 'jquery', 'underscore' ],
        function( require, Backbone, $, _ ) {
            // framework loaded
            require(
                    ['require', 'app'],
                    function( require, app) {
                        return {};
                    } );
        } );
define( [
    'jquery',
    'underscore',
    'backbone',
    'views/gameview',
], function( $, _, Backbone, GameView, ) {
    "use strict";

    window.app = {};

    $(function(){

        var app = window.app = _.extend({

            views: {
                GameView: new GameView
            },
            //code..
        }, window.app);

    //code...
    return window.app;
} );
(function() {

  define(["jquery", "underscore", "backbone"], function($, _, Backbone) {
    "use strict";

    var GameView;
    GameView = Backbone.View.extend({...});
    return GameView;
  });

}).call(this);
app.js

require.config( {
    paths: {
        'backbone':         'libs/AMDbackbone-0.5.3',
        'underscore':       'libs/underscore-1.2.2',
        'text':             'libs/require/text',
        'jquery':           'libs/jquery-1.7.1',
    },
    baseUrl: '/app'
} );

require(
        ['require', 'backbone', 'jquery', 'underscore' ],
        function( require, Backbone, $, _ ) {
            // framework loaded
            require(
                    ['require', 'app'],
                    function( require, app) {
                        return {};
                    } );
        } );
define( [
    'jquery',
    'underscore',
    'backbone',
    'views/gameview',
], function( $, _, Backbone, GameView, ) {
    "use strict";

    window.app = {};

    $(function(){

        var app = window.app = _.extend({

            views: {
                GameView: new GameView
            },
            //code..
        }, window.app);

    //code...
    return window.app;
} );
(function() {

  define(["jquery", "underscore", "backbone"], function($, _, Backbone) {
    "use strict";

    var GameView;
    GameView = Backbone.View.extend({...});
    return GameView;
  });

}).call(this);
和咖啡脚本:

/views/gameview.coffee

define ["jquery", "underscore", "backbone"], ($, _, Backbone, RankView) ->
  "use strict"
  GameView = Backbone.View.extend()
  GameView
也就是说:

/views/gameview.js

require.config( {
    paths: {
        'backbone':         'libs/AMDbackbone-0.5.3',
        'underscore':       'libs/underscore-1.2.2',
        'text':             'libs/require/text',
        'jquery':           'libs/jquery-1.7.1',
    },
    baseUrl: '/app'
} );

require(
        ['require', 'backbone', 'jquery', 'underscore' ],
        function( require, Backbone, $, _ ) {
            // framework loaded
            require(
                    ['require', 'app'],
                    function( require, app) {
                        return {};
                    } );
        } );
define( [
    'jquery',
    'underscore',
    'backbone',
    'views/gameview',
], function( $, _, Backbone, GameView, ) {
    "use strict";

    window.app = {};

    $(function(){

        var app = window.app = _.extend({

            views: {
                GameView: new GameView
            },
            //code..
        }, window.app);

    //code...
    return window.app;
} );
(function() {

  define(["jquery", "underscore", "backbone"], function($, _, Backbone) {
    "use strict";

    var GameView;
    GameView = Backbone.View.extend({...});
    return GameView;
  });

}).call(this);
但我想翻译成:

  define(["jquery", "underscore", "backbone"], function($, _, Backbone) {
    "use strict";

    var GameView;
    GameView = Backbone.View.extend({...});
    return GameView;
  });
最好在控制台中使用它:
var GameView=new app.views.GameView在控制台中

如何强制coffeescript编译器不这样做?有旗子或其他东西吗

再次:我只想切断
(function(){
})-背后的amd代码不是很重要吗,不管是全球还是全球

谢谢

您可以在编译咖啡文件时使用
--bare
标志:

-b
-bare
在不使用顶级函数安全包装的情况下编译JavaScript


为什么它不起作用?您的代码不依赖于在全局范围内执行,是吗?我认为这将回答您的问题@Bergi Yes,确实如此。目前不是一个好的解决方案,但我以后还需要通过控制台进行调试。-最好尝试使用require.js垫片then@vittore-不,没有。我只需要切断
(function(){
})没有任何代理或其他服务器端技术。