title: Why does the npm userconfig not get picked up?
body: <p>By default, NPM stores the user config in <code>~/.npmrc</code>. I had a load of stuff in my user config which I didn't want to interfere with for my main project, but I was switching to a second project which required different configuration, so I just did:</p>
  
  <p><code>npm config set userconfig C:\path\to\another\directory\.npmrc</code>. </p>
  
  <p>To my surprise, NPM added a new entry <code>userconfig</code> into my existing <strong>user</strong> config at <code>~/.npmrc</code>. This doesn't make sense to me - seems NPM needs to know where the user config is in order to find out where it is!</p>
  
  <p>Now NPM ignores any properties I put into my new NPMRC file and only takes properties from <code>~/.npmrc</code>. Even more strangely, <code>npm config list</code> contains a userconfig header (semicolon-prefixed line) specifying my new location, but the contents come from <code>~/.npmrc</code>.</p>
  
  <p>For example, if I set my email as "foo@example.com" in the <code>~/.npmrc</code> and as "bar@example.com" in my new NPMRC, <code>npm config list</code> reports something like this:</p>
  
  <pre><code>; cli configs
  user-agent = "npm/3.10.8 node/v6.9.1 win32 x64"
  
  ; userconfig C:\path\to\another\directory\.npmrc
  (... other properties ...)
  email = "foo@example.com"
  (... other properties ...)
  userconfig = "C:\path\to\another\directory\.npmrc"
  
  ; builtin config undefined
  
  ; node bin location = C:\Program Files\nodejs\node.exe
  ; cwd = C:\
  ; HOME = C:\Users\MyUsername
  ; "npm config ls -l" to show all defaults.
  </code></pre>
  
  <p>The value has come from <code>~/.npmrc</code> despite appearances (I double-checked the value in the new NPMRC is definitely "bar@example.com").</p>
  
  <p>I thought this might be a bug in NPM so I upgraded my Node/NPM to the latest version, but it still behaves the same way. Am I using <code>userconfig</code> wrong and how should it work?</p>