J'ai une tâche qui implique la création d'une bibliothèque JavaScript qui sera ensuite utilisée par plusieurs projets dans une solution Visual Studio. Idéalement, j'aimerais trouver un type de projet qui, pour mon code JavaScript, se comporterait comme s'il s'agissait d'une bibliothèque de classe C #, c'est-à-dire:
Est-ce possible avec VS 2010/11 ou dois-je écrire des fichiers BAT/PowerShell et en faire le script moi-même?
Question similaire mais légèrement différente: Modèle de projet Visual Studio pour JavaScript/VBScript?
Fort de mon expérience dans le développement de Asp.Net MVC, Visual Studio prend en charge JavaScript de manière limitée. Je suppose que vous pouvez faire quelque chose pour imiter le comportement que vous souhaitez:
Créez un projet pour stocker vos fichiers JavaScript, peut-être un projet de bibliothèque de classes, cela n'a pas vraiment d'importance, tant qu'il prend en charge les événements de construction. Placez vos fichiers JavaScript dans un nouveau projet.
Créez une étape de post-génération sur ce projet afin de minimiser votre JavaScript à l'aide d'un outil externe. J'utilise YUI Compressor . Votre étape de post-génération doit contenir des lignes similaires à celles-ci:
Java -jar $ Scripts\(ProjectDir)\yuicompressor-2.4.7.jar Scripts\(SolutionDir)\yourJsFile.js -o $ Scripts\(SolutionDir)\yourJsFile.min.js --charset utf-8
Incluez ce nouveau projet dans votre solution. Ensuite, pour vos projets Asp.Net, configurez Active Server Pages de manière à ce qu'ils référencent les fichiers JavaScript. J'utilise par exemple la syntaxe Razor. Cependant, il peut être difficile de spécifier le chemin correct:
@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> }
Là encore, il peut être difficile de vous assurer que vous pouvez référencer avec précision les fichiers JavaScript de votre projet Asp.Net. Mais je suis sûr qu'il y a un moyen de le faire. Vous pouvez peut-être demander à votre étape de post-compilation de copier les fichiers JavaScript dans un emplacement commun. Si vous faites cela, vous voudrez également marquer l'événement de post-génération sur votre projet JavaScript comme "Toujours exécuter", afin que les fichiers JavaScript soient toujours copiés.
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 vers les 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é du projet général séparé en utilisant tous les outils disponibles.
Je suis vraiment curieux à ce sujet! S'il vous plaît @ commentez-moi si quelqu'un propose d'autres idées ou de meilleures idées.
Si vous voulez juste un projet javascript front-end, c'est une option facile. Web Essentials est facile à utiliser et à installer dans Visual Studio. Vous pouvez l'utiliser pour une minification facile. Ensuite, vous pouvez utiliser Qunit pour les tests. C'est un point d'entrée assez facile et léger dans le développement javascript côté client.
Utilisez Outils Node.js pour Visual Studio . Il vous donnera des modèles de projet pour beaucoup de ces bonnes choses. Vous ne pouvez pas finir par utiliser node.js, surtout si vous créez simplement une bibliothèque js côté client, mais avoir node.js est utile pour les tests et vous voudrez/aurez besoin de npm pour installer toutes les autres choses mentionnées dans ma réponse originale ( Option 3).
Il y a beaucoup de configuration impliquée avec celui-ci. Cela peut constituer un obstacle à l’entrée pour certains développeurs .NET.
Voici ce que j'ai fait dans le passé:
J'ai effectivement créé ce projet dans Eclipse! (Ne me déteste pas). Plus tard, j'ai créé une solution Visual Studio avec un projet de site Web . J'ai installé node.js, ce qui n'est certainement pas nécessaire, mais je l'utilisais comme serveur Web léger.
Ensuite, vous pouvez utiliser Nuget ou Bower pour installer d’autres choses telles que:
Toutes ces choses ne sont pas nécessaires. Je pense que Bower est intégré à Visual Studio 2015. Certains d'entre eux nécessiteront des versions en ligne de commande, mais il y a très peu de commandes à exécuter une fois que vous l'avez configuré.
Si vous souhaitez accéder à pre-build/pos-build (inutile dans l’explorateur de tâches), créez un projet ASP.net Core vide (le dossier node_modules sera masqué et les fichiers seront automatiquement placés dans le projet (en les copiant simplement). MAIS, ceci génère un dossier obj et bin, ce qui peut être gênant.Le bon point ici est que si vous générez votre projet dans le dossier www, vous pouvez utiliser la commande de publication de Visual Studio.
Si vous ne vous souciez de rien de ce qui précède, un projet C # partagé ne génère pas de sortie. C'est donc un bon modèle pour créer un projet javascript (je l'utilise pour tous mes projets vue spa). L'inconvénient est que l'imbrication des fichiers ne fonctionnera pas = \