Use definições de módulo CommonJS com RequireJS

Seus aplicativos do lado do cliente podem rapidamente se tornar difíceis de manejar, mas escrever definições semelhantes a:

define([
'jquery',
'underscore',
'backbone',
'models/SomeModel',
'views/SomeView',
'jquery.tmpl'
], function ($, _, Backbone, SomeModel, SomeView) {

};

pode ser complicado e sujeito a erros. No exemplo acima, se eu adicionar um novo requisito e um novo argumento e não notar que jquery.tmpl não está definido como um parâmetro, irei obter uma falha em meu aplicativo. Também é irritante copiar e colar em outras definições, devido ao módulo e ao parâmetro estarem em linhas diferentes.

Eu prefiro muito mais usar o formato CommonJS , onde o código será o seguinte:

define(function (require, exports, module) {
var $ = require('jquery'),
_
= require('underscore'),
Backbone = require('backbone'),
TimerModel = require('models/SomeModel'),
TimerView = require('views/SomeView');

require('jquery.tmpl');
};

Dessa forma, podemos adicionar facilmente os módulos necessários com ou sem parâmetros. Também é extremamente simples copiar a definição parcial ou totalmente.