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)
答案 0 :(得分:3)
你可以使用AMD糖:
define(function(require) {
var $ = require('jquery')
, _ = require('underscore')
, Backbone = require('backbone')
// etc...
我个人更喜欢这个,因为它更接近CommonJS语法,但有一些浏览器限制(它需要Function.prototype.toString
)所以请确保在生产之前使用r.js
打包它。
答案 1 :(得分:0)
或者您可以尝试更通用和自然的解决方案(不仅适用于JS)http://sourceforge.net/projects/minimerge
它支持完全依赖堆栈,多个源树,并且纯粹基于java(并且您也可以将其用于内容过滤)。
特别是你最终:
//:include com / package / Class.js
//任何代码。
答案 2 :(得分:0)
minimerge是一个普通的java工具,很少KB小而且速度超快。我将它用于我的html5 web项目。 它还具有依赖关系和任何基于文本的文件的CSS; - )