Grunt compress : How could I only include runtime node module dependencies?

My application is MEAN stack style. I would like to generate a package including all Nodejs and AngularJs files, so I could just unzip the package and run in other environments.

I use grunt-contrib-compress to compress and generate a zip file. Everything works well, but there are many development node modules are included, such as grunt*. All I need is the runtime node modules which are defined in the package.json. It will dramatically reduce the package size.

I could include the node modules one by one, but is there a good way only include runtime modules while packaging?

OK, I found a solution, which load the package.json and map the runtime dependencies into target folders.

compress: {
      main: {
        options: {
          archive: 'myapp.zip'
        },
        files: [
          {src: ['dist/**','app/**','config/**','server.js'],dest:'.'},
          {src: Object.keys(require('./package.json').dependencies).map(function(module){
            return "node_modules/" +module+"/**"
          }),dest:'.'},
        ]
      }
    }