title: What does "requires: true" do in package-lock.json
body: <p>Our team just updated to npm@5. The <code>package-lock.json</code> was unified between Windows and Mac (certain dependencies are optional so they don't get installed on Windows, but they do on Mac) so that no matter the machine, we'd generate the same node_modules structure. That went fine, then each of the team members went through the following steps:</p>
  
  <ol>
  <li><code>rm -rf node_modules</code></li>
  <li><code>git pull</code></li>
  <li><code>npm install</code></li>
  </ol>
  
  <p>This actually went perfectly for all team members except for one, who had a modified <code>package-lock.json</code> after the <code>npm install</code>. The one modified line was that it removed <code>"requires": true</code>.</p>
  
  <p>So I saw:</p>
  
  <pre><code>{
    ...
    "version": "0.0.1",
    "lockfileVersion": 1,
    "requires": true,
    "dependencies": {
    ...
  }
  </code></pre>
  
  <p>But he saw:</p>
  
  <pre><code>{
    ...
    "version": "0.0.1",
    "lockfileVersion": 1,
    "dependencies": {
    ...
  }
  </code></pre>
  
  <p>Does anybody know why <code>requires: true</code> might be removed from the <code>package-lock.json</code> file on some machines but not others? Also, a little explanation of what this property does wouldn't hurt. :)</p>
  
  <p>Thanks in advance!</p>