2013-07-01 2 views
7

Мой новый проект требует от меня работы с TFS + Git.Могу ли я использовать Grunt с TFS?

Исповедь: я ничего не знаю о TFS.

Я хочу настроить сборку для моего проекта JavaScript. Я хочу использовать Grunt.

Возможно ли это? Кто-нибудь использовал Grunt с TFS?

+1

Вы видите этот протокол HTTPS: //github.com/danactive/grunt-tfs-unlock? – elclanrs

ответ

18

В нашем текущем проекте мы используем Grunt и TFS. Я включил Grunt с TFS, отбросив его из файла bat, который вы можете подключить в разделе Pre- or Post-BuildEvents вашего файла проекта.

Однако, поскольку TFS выполнит ваши сборки с помощью определенных переменных окружения, вам необходимо использовать абсолютные пути.

список вещей, которые мы сделали

  1. Установка Node.js на вашей машине построения (а также на вашей машине (ов))
  2. конечно
  3. Добавить package.json файл на корень вашего проекта JavaScript.
  4. Использовать npm для установки grunt-cliлокально (!). Используйте --save-dev флаг, чтобы добавить этот пакет в раздел зависимостей развития в package.json
  5. Для всех других пакетов, которые необходимо, использовать НПЙ с тем же флагом, как в шаге 3
  6. Написать файл битого (смотрите пример ниже), в котором вы будет
    1. делает использование абсолютных путей
    2. использования НПМ, чтобы установить все пакеты, перечисленные в файле packages.json
    3. вызова хрюкать
  7. в йо Ур до или PostBuildEvents, называют эту летучую мышь файлу

пример летучей мыши файл

rem use call to execute other bat files 
echo npm install 
call "C:\Program Files\nodejs\npm" install 

rem because we have listed grunt-cli as a dev dependency, 
rem the executable will be located in the node_modules folder 
echo grunt 
call "./node_modules/.bin/grunt" 
+0

Мне бы хотелось узнать больше информации с точки зрения того, кто уже знаком с использованием TFS и хотел бы начать использовать хрюканье и еще не знаком с ним. Также нет пакетов nuget для этого? Похоже, вы можете легко добавить много в пакет nuget. –

+0

@AllenRice IMO Единственное, что вы могли бы добавить в npm, это либо nodejs, либо grunt. Все остальные пакеты - пакеты npm. К сожалению, я не нашел nuget-пакетов для grunt, и там нет никаких популярных для nodejs. Вы можете попробовать это: https://www.nuget.org/packages/nji/, который сделает только шаг 1 устаревшим. – thomaux

+0

Почему я должен локально устанавливать '' 'grunt-cli'''? –

2

Я использую хрюкать с TFS, когда я должен использовать TFS. Я пробовал grunt-tfs-unlock, но столкнулся с этим issue. Я решил проблему с помощью grunt-shell, которая работает и оставляет вам больше ответственности за конфигурацию. Это gist показывает, как я использую TFS с хрюканьем. Он демонстрирует команду «tf checkout», но вы можете легко создать любую команду tf с этим шаблоном.

0

После установки узла и т. Д. На вашем сервере сборки вы также можете изменить шаблон сборки и добавить шаг для вызова grunt и т. Д. Это предотвратит необходимость изменения файла csproj и позволит вам вместо этого используйте переменные среды, созданные TFS.

2

Я пробовал все ответы, перечисленные здесь, и не смог получить успешную автоматическую сборку и развертывание с TFS до тех пор, пока не использовал NCapsulate. Это устраняет необходимость установки NodeJs отдельно для агентов сборки или dev-машин. Просто пакет NuGet.

Просто убедитесь, что вы правильно настроили свои цели сборки, и это работает очень хорошо.

-1

Вы можете создать конечный файл с ниже шаги:

<exec command="npm install" WorkingDirectory="$(RootFolder)\ui-packages" ContinueOnError="WarnAndContinue"/> 
<exec command="grunt dash-build" WorkingDirectory="$(RootFolder)\ui-packages" /> 
<exec command="rimraf node_modules" WorkingDirectory="$(RootFolder)\ui-packages" /> 
+0

. Где информация? – jcoppens

+3

Пожалуйста, добавьте некоторое объяснение, почему этот код помогает OP. Это поможет обеспечить ответ, о котором могут узнать будущие зрители. См. [Ответ] для получения дополнительной информации. –

Смежные вопросы