Set node version for non node web role

i have written an SPA which uses Grunt tasks to build itself from the source code into a dist directory.

I want to host this on azure to keep everything in one PaaS.

If i send the prebuilt dist folder to azure and add a .deploments task to move it into the DEPLOYMENT_TARGET folder everything works fine. However i want to just keep source code in GitHub and have the application built at deployment time using the existing Grunt tasks.

I have added a .deployment file with the following command

[config]
command = npm install

Which sucessfully triggers my npm install, and then the post install script

"scripts": {
    "postinstall": "node node_modules/grunt-cli/bin/grunt build"
},

which will use the local copy of grunt-cli (i don't like this but it works), however i get an error because the version of node being used is 0.6.20 and Grunt requires greater than 0.8

I have set my engine param in the package.json

"engines": {
    "node": ">= 0.8.4"
},

But no luck :(

I have a feeling that the engine param is ignored because a node application is not being found. Which is correct as i want azure to serve my files for me without using a node http server.

Is there a way to target another Node binary or specifically set the version of node for my website even if it is not "using" node as it were?

Any help greatly appreciated

Using your example of pushing a local copy of grunt-cli to an Azure Web Site I was able to get azure to run grunt after a build and before a deploy. I am using .net with a post-build event, but that shouldn't really matter because the whole issue is whether azure will run grunt. I have

grunt version 0.4.1 

and

grunt-cli version 0.1.9 

deploying with my application and am calling

npm install
my/path/to/grunt-cli/grunt

According to http://www.windowsazure.com/en-us/develop/nodejs/common-tasks/specifying-a-node-version/ the current default version of node installed is 0.6.20, but this approach still worked for me.