47

Mam zadania, które wymagają utworzenia biblioteki JavaScript, która będzie następnie używana przez wiele projektów w rozwiązaniu Visual Studio. Idealnie chciałbym znaleźć typ projektu, który, dla mojego kodu JavaScript, zachowują się tak, jakby to był C# biblioteki klas, a mianowicie:Typ projektu JavaScript dla programu Visual Studio?

  • Byłoby „kompilacji” (Minify, sprawdzić zamknięcie ...) kod JavaScript do jakiegoś wyjścia **. js * file
  • Dane wyjściowe mogą być "przywołane" przez inne projekty, np. w wyniku realizacji projektu ASP.NET MVC
  • mogę określić jest „zbudować porządek” z moich projektów (standard VS funkcję)

Czy jest to możliwe z VS 2010/11 lub muszę napisać BAT/PowerShell pliki i sam to pisz?

podobne, ale nieco inne pytanie: Visual Studio Project Template for JavaScript/VBScript?

+0

Wątpię, czy odniesiesz sukces, robiąc * cokolwiek * z Visual Studio, jeśli chodzi o JavaScript. Możesz spojrzeć na [WebStorm] (http: //www.jetbrains.com/webstorm /) –

+0

Wolałbym nie używać innego IDE, ale gdybym musiał, w jaki sposób zaproponowałbyś rozwiązanie obejmujące zarówno projekt WebStorm JS, jak i projekty Visual Studio .NET? Czy projekt WebStorm zostałby "wdrożony" w folderze projektu ASP.NET MVC, czy używałbyś niektórych skryptów? – Borek

+0

Nie jestem pewien. Dla mnie, trzymam WebStorm otwarty, aby napisać mój kod, a ja przechodzę do VS, aby uruchomić/wdrożyć mój kod. To nie jest najbardziej elegancka konfiguracja na świecie, ale wszystko jest lepsze niż pisanie JS w VS! :) –

Odpowiedz

9

Na podstawie mojego doświadczenia rozwijającego ASP.NET MVC, Visual Studio ma ograniczone wsparcie dla JavaScript. Przypuszczam, że istnieje coś, co można zrobić, aby naśladować zachowanie chcesz:

  1. stworzyć projekt do przechowywania plików JavaScript, być może projekt Class Library to naprawdę nie ma znaczenia, tak długo, jak obsługuje Budowanie pakietowe . Umieść swoje pliki JavaScript w nowym projekcie.

  2. Utwórz krok budowania postu w tym projekcie, aby zminimalizować JavaScript za pomocą narzędzia zewnętrznego. Używam YUI Compressor. Twój krok budowania postów powinien zawierać linie podobne do następujących:

    java -jar $ (ProjectDir) Skrypty \ yuicompressor-2.4.7.jar $ (SolutionDir) Skrypty \ twojeJsFile.js -o $ (SolutionDir) Skrypty \ twojeJsFile .min.js --charset utf-8

  3. Dodaj nowy projekt do swojego rozwiązania. Następnie dla swoich projektów Asp.Net, skonfiguruj swoje strony Active Server tak, aby odwoływały się do plików JavaScript, jako przykład używam składni Razor. To może być trudne do specyficznych poprawna ścieżka choć:

@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> 
} 

Ponownie może to być trudne, aby upewnić się, że można dokładnie odwoływać pliki JavaScript z projektu ASP.NET. Ale jestem pewien, że jest sposób na zrobienie tego. Być może możesz mieć swój krok budowania postu, skopiuj pliki JavaScript do jakiejś wspólnej lokalizacji. Jeśli to zrobisz, będziesz również chciał oznaczyć zdarzenie budowania postu w projekcie JavaScript jako "Zawsze uruchamiaj", więc pliki JavaScript są zawsze kopiowane.

7

Dobre pytanie (+1). Moja decyzja polegała na umieszczeniu wszystkich ogólnych plików javascript w oddzielnym projekcie javascript i wykorzystaniu linked files do potrzebnych plików js w projekcie web/mvc.

W ten sposób można korzystać z kontroli subversion z poziomu strony projektu javascript oraz kompaktowania i łączenia plików js z oddzielnych projektów ogólnych przy użyciu wszystkich dostępnych narzędzi.

+0

+1 to jest wspaniały! – devlord

+0

Ten jest świetny. Ale kiedy używasz JavaScriptu w projekcie ASP.NET MVC przy użyciu połączonych plików js, występuje niewielki problem podczas debugowania aplikacji. Ponieważ znajduje się poza głównym katalogiem aplikacji, pojawia się komunikat "Nie można użyć wiodącego .., aby wyjść z katalogu nadrzędnego." Jakieś rozwiązanie tego? –

3

Jestem naprawdę ciekawy! Proszę @ komentarz do mnie, jeśli ktoś wymyśla inne/lepsze pomysły.

Opcja 1: ASP.Projekt sieci Web z Web Essentials

Jeśli potrzebujesz tylko projektu javascript z przodu, jest to prosta opcja. Web Essentials jest łatwy w użyciu i instalacji w Visual Studio. Możesz użyć tego do łatwej minimalizacji. Następnie możesz użyć testu Qunit. Jest to dość łatwy i lekki punkt wejścia do programowania po stronie javascript.

Opcja 2: node.js Tools for Visual Studio

Korzystanie Node.js Tools for Visual Studio. Da ci szablony projektów dla wielu z tych dobrych rzeczy. Nie możesz skończyć używając node.js, szczególnie jeśli tworzysz bibliotekę js po stronie klienta, ale posiadanie pliku node.js jest pomocne przy testowaniu i będziesz potrzebować/potrzebować npm do zainstalowania wszystkich innych dobrych rzeczy wymienionych w mojej oryginalnej odpowiedzi (Opcja 3).

Istnieje wiele ustawień związanych z tym. Może to być przeszkoda dla niektórych programistów .NET.

Wariant 3: strona internetowa projektu

Oto co zrobiłem w przeszłości:

enter image description here

I rzeczywiście stworzony this project w Eclipse! (Nie nienawidź mnie). Później stworzyłem rozwiązanie Visual Studio z projektem strony internetowej . Zainstalowałem plik node.js, który z pewnością nie jest wymagany, ale używałem go jako lekkiego serwera WWW.

Następnie można użyć Nuget lub Bower zainstalować inne rzeczy jak:

  1. require.js zarządzania modułem
  2. jaśminu dla testów jednostkowych
  3. grunt lub łykać w przypadku kompilacji (zminimalizowanie)
  4. Można zainstalować jslint lub jshint do korekty kodu.

nie są wymagane wszystkie te rzeczy. Myślę, że Bower jest zintegrowany z Visual Studio 2015. Niektóre z nich będą wymagały kompilacji z wiersza poleceń, ale jest bardzo mało poleceń do uruchomienia po skonfigurowaniu.

+0

Zajmuję się tworzeniem projektu JavaScript w Visual Studio. Czy są jakieś wymagania wstępne dotyczące tworzenia projektu JavaScript, takie jak jakie szablony są potrzebne i jakie inne pakiety są wymagane w Visual Studio? –

+0

@ tom_mai78101, spróbuj ** Opcja 1 **. Nie potrzebujesz nawet podstawowych artykułów internetowych, chociaż jest to przydatne do minimalizowania. Instalacja niezbędnej strony internetowej jest łatwa. – Jess

+0

W porządku, dziękuję. –

0

Jeśli chcesz uzyskać dostęp do pre-build/pos-build (nie jest to naprawdę potrzebne z eksploratorem zadań), utwórz pusty projekt ASP.net Core (ukryje on folder node_modules, a pliki zostaną automatycznie umieszczone w projekcie (tylko kopiowanie ich, nie jest konieczne dodawanie ich ręcznie) .Ale to generuje folder obj i bin, który może być denerwujący.Jednak jedną dobrą rzeczą jest to, że jeśli zbudujesz swój projekt w folderze www, możesz użyć polecenia publikuj od Visual Studio.

Jeśli nie dbasz o żaden z powyższych, wspólny projekt C# nie generuje danych wyjściowych, więc jest to dobry szablon do tworzenia projektu javascript (używam go dla wszystkich moich vue spa Wadą jest to, że zagnieżdżanie plików nie będzie działać = \

Powiązane problemy