Search code examples
javascripttfscontinuous-integrationtfsbuildgruntjs

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?


Solution

  • 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"