Je pense que le problème que vous rencontrerez sera si vous utilisez des définitions anonymes. Si vous voulez un fichier combiné/assemblé script qui contient toutes vos définitions, vous devrez les nommer.
eg.
define("someModule", ["jquery", "ko"], function($,ko) { ... });
au lieu de
define(["jquery", "ko"], function($,ko) { ... });
Si vous utilisez les noms de fichiers comme noms de modules, vous pourrez les charger de manière asynchrone (non groupés) ainsi que préchargés (groupés). Ainsi, vous pouvez travailler en mode débogage et en mode version sans avoir à modifier vos exigences.
Je n'ai aucune expérience avec l'optimiseur RequireJS pour savoir s'il prend en charge les définitions anonymes ou non.
UPDATE :
J'ai récemment eu à le faire et l'un des problèmes que j'ai rencontré était l'attribut data-main de la balise script chargeant require.js. Comme le fichier main.js avait des dépendances sur les modules groupés, ils doivent être chargés avant main.js mais après require.js. J'ai donc dû abandonner data-main et charger ce fichier (dégroupé) en dernier.
de
<script src="../JS/require-v2.1.2.js" type="text/javascript" data-main="main.js"></script>
à
<script src="../JS/require-v2.1.2.js" type="text/javascript"></script>
<%: System.Web.Optimization.Scripts.Render("~/bundles/signup") %>
<script src="main.js" type="text/javascript"></script>
Je n'ai pas regardé, mais si la configuration du bundle pouvait assurer que main.js est le dernier, alors il n'y aurait même pas besoin de cette dernière balise script.