Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I use Grunt with TFS?

My new project needs me to work with TFS + Git.

Confession: I know nothing about TFS.

I want to setup a build for my JavaScript project. I want to use Grunt.

Is this possible? Has anybody used Grunt with TFS?

like image 477
Sri Avatar asked Jul 01 '13 07:07

Sri


2 Answers

On our current project, we're using Grunt and TFS. I've integrated Grunt with TFS by caling it from a bat file which you can hook up in the Pre- or Post-BuildEvents section of your project file.

However, because TFS will execute your builds with specific environment variables, you need to use absolute paths.

A list of the things we've done

  1. Install node.js on your build machine (as well as on your development machine(s) ofcourse)
  2. Add a package.jsonfile on the root of your JavaScript project.
  3. Use npm to install grunt-cli locally (!). Use the --save-dev flag to add this package to the development dependencies section in package.json
  4. For all other packages you need, use npm with the same flag as in step 3
  5. Write a bat file (see example below) in which you'll
    1. make use of absolute paths
    2. use npm to install all the packages listed in the packages.json file
    3. call grunt
  6. In your Pre- or PostBuildEvents, call this bat file

bat file example

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"
like image 95
thomaux Avatar answered Sep 20 '22 17:09

thomaux


I use grunt with TFS when I have to use TFS. I've tried grunt-tfs-unlock, but ran into this issue. I solved the problem using grunt-shell, which works and leaves you more in charge of the configuration. This gist shows how I use TFS with grunt. It demonstrates the 'tf checkout' command, but you could easily create any tf command with this pattern.

like image 26
Alex Grant Avatar answered Sep 19 '22 17:09

Alex Grant