Install or link Grunt in npm project (package.json)

I'm trying to find an elegant way to use Grunt in my project via npm. Of course, I can simply add it to the (dev-)dependencies in my package.json ...

"devDependencies": {
    "grunt": "~0.4.5"
}

... but it gets installed locally, even if I have already a working copy of Grunt installed globally. I'd prefer linking it if it exists and installing it locally if it doesn't - that seems to be the cleanest approach to me. I tried ...

"scripts": {
  "preinstall": "npm install grunt",
  "postinstall": "npm link grunt"
}

... but this only creates a mess in node_modules. Is it possible to do this in package.json?