49 votes

Type de projet JavaScript pour Visual Studio?

J'ai une tâche qui implique la création d'une bibliothèque JavaScript qui sera ensuite utilisé par plusieurs projets dans une solution Visual Studio. Idéalement, je voudrais trouver un type de projet qui serait, à mon code JavaScript, de se comporter comme si c'était une bibliothèque de classes C#, c'est à dire:

  • Il serait "compiler" (rapetisser, de vérifier, par la Fermeture,...), le code JavaScript dans une partie de la sortie *.js fichier
  • Cette sortie pourrait être "référencé" par d'autres projets, par exemple par un ASP.NET projet MVC
  • Je pourrais préciser un "ordre de génération" de mes projets (standard VS fonctionnalité)

Est-ce possible avec VS 2010 / 11 ou dois-je écrire quelques chauve-souris / PowerShell fichiers de script et de moi-même?

Similaire, mais question légèrement différente: Modèle de Projet Visual Studio pour JavaScript/VBScript?

9voto

Bojin Li Points 3680

Basé sur mon expérience dans le développement d'Asp.Net MVC, Visual Studio a limité la prise en charge de JavaScript. Je suppose qu'il ya quelque chose que vous pouvez faire pour imiter le comportement que vous souhaitez:

  1. Créer un projet pour stocker vos fichiers JavaScript, peut-être un projet de Bibliothèque de classes, il n'a pas vraiment d'importance, tant qu'il prend en charge les Événements de construction. Mettez vos fichiers JavaScript à l'intérieur de nouveau projet.

  2. Créer un poste de construire étape sur ce projet afin de minimiser votre JavaScript à l'aide d'un outil externe. J'utilise YUI Compressor. Votre post étape de génération doit contenir des lignes semblables aux suivantes:

    java-jar $(ProjectDir)Scripts\yuicompressor-2.4.7.jar $(SolutionDir)Scripts\yourJsFile.js -o $(SolutionDir)Scripts\yourJsFile.min.js --jeu de caractères utf-8

  3. Inclure ce nouveau projet dans votre solution. Alors, pour votre Asp.Net des projets, mettre en place des Pages Active Server Pages telles qu'elles référencent les fichiers JavaScript, je suis en utilisant la syntaxe Razor comme un exemple. Il peut être difficile de spécifique le chemin d'accès correct si:

@if (@Model.IsDebug)
{
<script src="@Url.Content("~/Scripts/yourJsFile.js")"  type="text/javascript"> </script>
}
else
{
<script src="@Url.Content("~/Scripts/yourJsFile.min.js")"  type="text/javascript"></script>
}

De nouveau, il peut être difficile de sorte que vous pouvez exactement de référence les fichiers JavaScript de votre Asp.Net projet. Mais je suis sûr qu'il y est un moyen de le faire. Peut-être que vous pouvez avoir votre post étape de génération de copier les fichiers JavaScript à certains de lieu commun. Si vous faites cela, vous aurez aussi envie de marquer l'événement post-construction sur l'option JavaScript de votre projet en tant que "Toujours Exécuter", de sorte que les fichiers JavaScript sont toujours copiées.

7voto

Saulius Points 172

Bonne question (+1). Ma décision a été de mettre tous les fichiers javascript généraux dans un projet javascript distinct et d’utiliser les fichiers liés aux fichiers js nécessaires dans le projet web / mvc.

De cette façon, vous avez la possibilité d'utiliser le contrôle de subversion du côté projet javascript et de compacter et de fusionner les fichiers js du côté des projets généraux séparés en utilisant tous les outils disponibles.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X