Le regroupement et les minifying modulaire JavaScript (RequireJS / AMD) avec ASP.NET MVC
Quelqu'un a une expérience avec ou connaissez toutes les bonnes solutions pour le groupage et les minifying modulaire JavaScript comme RequireJS /AMD dans un ASP.NET projet MVC?
Est la meilleure façon d'utiliser le L'optimiseur de RequireJS (peut-être dans un post-construction de l'action?) - ou est-il quelque chose de mieux là-bas pour ASP.NET MVC?
- Depuis l'AMD approche s'appuie fortement sur les scripts de chargement d'autres scripts, je crois que votre meilleur pari est de rapetisser chaque script de façon autonome (sans regroupement) ou, en effet, l'utilisation de l'optimiseur de RequireJS qui essaie de détecter le module d'inclusions et les regrouper en conséquence.
Vous devez vous connecter pour publier un commentaire.
Je pense que le problème que vous serez frappé est que si vous avez utilisé anonyme définit. Si vous voulez un combiné/livré fichier de script qui contient tous vos définit, vous aurez à les nommer.
par exemple.
au lieu de
Si vous utilisez les noms de fichiers comme les noms de module, vous serez capable de les charger de manière asynchrone (non fournis) ainsi que préchargés (fourni). De cette façon, vous pouvez travailler en mode de débogage, ainsi que le mode de diffusion sans avoir à changer votre exige.
Je n'ai aucune expérience avec les RequireJS optimiseur de savoir si il prend soin de anonyme définit ou non.
Mise à JOUR:
J'ai récemment eu à le faire et l'un des problèmes que j'ai rencontré a été de données, le principal attribut de la balise de script de chargement require.js. Depuis le main.js fichier avait dépendances sur le lot de modules, ils ont besoin d'être chargé avant main.js mais après require.js. J'ai donc du fossé de données principale et charger ce fichier (dégroupé) en dernier.
de
à
Je n'ai pas regardé, mais si le groupe de configuration pourrait assurer main.js est dernier, alors n'auriez même pas besoin que la dernière balise de script.
BundleConfig.cs
, voir ma réponse ci-dessous. Je pense que BundleTables sont nouveaux dans MVC 4.Ces sont les démarches pour obtenir livré avec RequireJS main.js. Vous pouvez descendre à une seule ligne dans le
<head>
tag. Ce n'est pas de régler le problème avec anonyme définit.HTML
BundleConfig.cs
main.js doit travailler en l'absence de données principale (j'avais besoin de définir baseUrl)
Je ne suis pas sûr si c'est une solution acceptable ou pas, mais Visual Studio 2012 a un package NuGet (Microsoft.Web.Optimisation) qui prend en charge native de minification et le groupement. Je ne suis pas sûr si elle est disponible pour 2010
C'est une ligne de code dans application_start
http://msdn.microsoft.com/en-us/vs11trainingcourse_aspnetandvisualstudio_topic5
Je sais que c'est une vieille question, mais vous pouvez prendre un coup d'oeil à RequireJS.NET Compresseur (utilise YUI compressor, pas ASP.NET le regroupement, au moins pour le moment) qui fait partie de RequireJS.NET package NuGet.
Références:
Compresseur - http://requirejsnet.veritech.io/compressor.html
Documentation Générale - http://requirejsnet.veritech.io/
Projet Github - https://github.com/vtfuture/RequireJSDotNet
NuGet - https://www.nuget.org/packages/RequireJsNet/