require.js要求的替代方式?

时间:2013-11-29 11:04:32

标签: javascript requirejs

require.js的新功能。我有这个:

define([
    'jquery',
    'underscore',
    'backbone',
    'views/sidebar',
    'views/dashboard',
    'views/users',
    'views/venues',
    'views/payments'
], function($, _, Backbone, SidebarView, DashboardView, UsersView, VenuesView, PaymentsView) {

    var Router = Backbone.Router.extend({
        routes: {
            '/dashboard': 'showDashboard',
            '/users': 'showUsers',
            '/venues': 'showVenues',
            '/payments': 'showPayments'
        }
    });

    var initialize = function() {
        var router = new Router();
        Backbone.history.start();
    }

    return {
        initialize: initialize
    };
});

我想知道是否有另一种方式来写这个,所以我没有这么长的行:

function($, _, Backbone, SidebarView, DashboardView, UsersView, VenuesView, PaymentsView) 

3 个答案:

答案 0 :(得分:3)

你可以使用AMD糖:

define(function(require) {

  var $ = require('jquery')
    , _ = require('underscore')
    , Backbone = require('backbone')

    // etc...

我个人更喜欢这个,因为它更接近CommonJS语法,但有一些浏览器限制(它需要Function.prototype.toString)所以请确保在生产之前使用r.js打包它。

文档中的更多示例:http://requirejs.org/docs/whyamd.html#sugar

答案 1 :(得分:0)

或者您可以尝试更通用和自然的解决方案(不仅适用于JS)http://sourceforge.net/projects/minimerge

它支持完全依赖堆栈,多个源树,并且纯粹基于java(并且您也可以将其用于内容过滤)。

特别是你最终:

//:include com / package / Class.js

//任何代码。

答案 2 :(得分:0)

minimerge是一个普通的java工具,很少KB小而且速度超快。我将它用于我的html5 web项目。 它还具有依赖关系和任何基于文本的文件的CSS; - )