Ugly kludge: Create the relevant folders as soon as we know what they are.
Ugly kludge: Create the relevant folders as soon as we know what they are.

This is not a beautiful solution.  The configuration loader should not be concerned with folder creation.  For instance, this means that it might have to have write access to the npm root (to create the .tmp folder) even when just doing "npm ls" (which doesn't use the temp folder anyway.)

However, there is no other single place where npm accesses those folders at the moment, so this is the easiest way to ensure that these things exist.

TODO: Abstract out *all* the file reading/writing stuff to go through some single gate that ensures that the relevant folders exist at the point where they are actually needed.

kemitchell/npm,kemitchell/npm,DIREKTSPEED-LTD/npm,midniteio/npm,misterbyrne/npm,cchamberlain/npm-msys2,segment-boneyard/npm,ekmartin/npm,evanlucas/npm,rsp/npm,kemitchell/npm,yibn2008/npm,yodeyer/npm,evocateur/npm,thomblake/npm,segmentio/npm,haggholm/npm,evocateur/npm,Volune/npm,princeofdarkness76/npm,cchamberlain/npm-msys2,DaveEmmerson/npm,yyx990803/npm,midniteio/npm,princeofdarkness76/npm,chadnickbok/npm,evocateur/npm,xalopp/npm,DaveEmmerson/npm,rsp/npm,DIREKTSPEED-LTD/npm,lxe/npm,TimeToogo/npm,cchamberlain/npm,kriskowal/npm,DaveEmmerson/npm,TimeToogo/npm,ekmartin/npm,misterbyrne/npm,kriskowal/npm,segrey/npm,haggholm/npm,midniteio/npm,segrey/npm,chadnickbok/npm,rsp/npm,kimshinelove/naver-npm,segrey/npm,thomblake/npm,cchamberlain/npm,yyx990803/npm,cchamberlain/npm,evanlucas/npm,kimshinelove/naver-npm,DIREKTSPEED-LTD/npm,xalopp/npm,segmentio/npm,segment-boneyard/npm,xalopp/npm,kimshinelove/naver-npm,kriskowal/npm,yibn2008/npm,TimeToogo/npm,chadnickbok/npm,cchamberlain/npm-msys2,yodeyer/npm,thomblake/npm,segment-boneyard/npm,evanlucas/npm,segmentio/npm,princeofdarkness76/npm,Volune/npm,yibn2008/npm,misterbyrne/npm,yodeyer/npm,lxe/npm,ekmartin/npm,lxe/npm,haggholm/npm,yyx990803/npm,Volune/npm