require.js是require的另一种方式

require.js alternative way to require?

本文关键字:require 方式 另一种 js      更新时间:2023-12-20

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) 

您可以使用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

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

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

特别是你最终得到的:

//:包括com/package/Class.js

//任何代码。

minimerge是一个简单的java工具,只有几KB小,速度极快。我把它用于我的html5网络项目。它还使用依赖项和任何基于文本的文件进行CSS;-)