I noticed caching the node_modules folder caused problems (build fails) while caching the .npm cache avoided it. I believe it’s because the .npm cache doesn’t store compiled native modules while the node_modules folder does. So when you test different versions of node, as is common in Travis-CI, it will try to load a native module compiled for say node 4 in node 6 and barf.