The problem is it's hard for Serverless to know which modules are used for your application, and which are only used for development - NPM v3 tries to store them as flat as possible, so it's not simple.
I have gotten around this by installing my function dependencies in subdirectories, and then packaging up the them. I put my development dependencies in the top level of my service, and ignore it for packaging purposes.
The only issue is that I have to have a
package.json in each function directory, but I actually like this as it makes dependencies explicit per function.