Tim, I come from Java (using Maven and J2EE), I have some knowledge of Javascript and Angular and I was looking how to implement some lifecycle management with grunt.
If you want you can have something like packages.json in Maven as well, by moving the dependencies to another file, and include it in the pom.xml using XML System entiy mechanism. Also you can inherit dependencies from the parent.
My current perception of grunt is that it is more verbose than maven and it lack minimalism. For maven one needs a valid JDK and maven itself, all the other plugins or dependencies are downloaded when needed in ~/.m2 directory, while with grunt I had to manually npm a number of packages like phantomjs, karma, etc. All the files landed in the current project, meaning that the dependencies will be duplicated in a new project. So with respect of dependency management, maven is simpler and superior in concept.
What I like in grunt is the browser refresh capability on changing source code and the JavaScript unit test, this is was a novel concept to me.