In unserem aktuellen Projekt verwenden wir Grunt und TFS. Ich habe Grunt mit TFS integriert, indem ich es aus einer Bat-Datei abgeleitet habe, die Sie im Pre- oder Post-BuildEvents Abschnitt Ihrer Projektdatei.
Da TFS jedoch Ihre Builds mit bestimmten Umgebungsvariablen ausführt, müssen Sie absolute Pfade verwenden.
Eine Liste der Dinge, die wir gemacht haben
package.json
-Datei in das Stammverzeichnis Ihres JavaScript-Projekts ein. npm
, um grunt-cli
lokal (!) zu installieren. Verwenden Sie das Flag --save-dev
, um dieses Paket zum Abschnitt Entwicklungsabhängigkeiten in package.json
hinzuzufügen.
Beispiel für eine Fledermausdatei
%Vor%Ich verwende grunt mit TFS, wenn ich TFS verwenden muss. Ich habe grunt-tfs-unlock versucht, stieß aber auf dieses Problem . Ich habe das Problem mit grunt-shell gelöst, was funktioniert und Ihnen mehr Kontrolle über die Konfiguration gibt. Diese Liste zeigt, wie ich TFS mit grunt verwende. Es demonstriert den 'tf checkout' Befehl, aber Sie könnten leicht jeden tf Befehl mit diesem Muster erstellen.
Ich habe alle hier aufgelisteten Antworten ausprobiert und war nicht in der Lage, eine erfolgreiche automatisierte Erstellung und Bereitstellung mit TFS zu erreichen, bis ich verwendet habe NCapsulate . Dadurch müssen Knoten nicht mehr separat auf Build Agents oder Dev-Maschinen installiert werden. Nur ein NuGet-Paket.
Stellen Sie nur sicher, dass Sie Ihre Build-Ziele richtig eingerichtet haben, und es funktioniert sehr gut.
Nach der Installation von Knoten etc ... auf Ihrem Build-Server können Sie auch Ihre Build-Vorlage ändern und einen Schritt hinzufügen, um grunt usw. aufzurufen. Dies würde verhindern, dass Sie Ihre csproj-Datei ändern müssen und Sie verwenden können die Umgebungsvariablen, die stattdessen von TFS erstellt werden.
Sie können eine Zieldatei mit den folgenden Schritten erstellen:
%Vor%Tags und Links javascript tfs gruntjs tfsbuild continuous-integration