title: Is calling "npm install" on a package of a specific (older) version expected to stay the same over time?
body: <p>I'm using an older version of node (6.17.1) and had explicitly installed eslint@5.16.0 as the newer versions of eslint don't work with node 6. This had been working without any problems for a while. </p>
  
  <p>Recently, when installing eslint@5.16.0 from package.json using <code>npm install</code> no longer works -- there is now an incompatible dependency that I assume is somewhere in eslint's dependency tree.</p>
  
  <p>My question is, was <code>npm install</code> on a specific version of eslint expected to continue working forever in the same way? Or is this normal for npm packages (of a specific version) to have some package deep in the dependency tree change, and then break that specific version of the first package?</p>
  
  <p>And if this cannot be prevented, is there any way to easily fix this once a dependency breaks? Is this what package-lock.json is for?</p>
  
  <p>The error output from npm is below:</p>
  
  <pre><code>npm ERR! Darwin 18.5.0
  npm ERR! argv "/Users/~/.nvm/versions/node/v6.17.1/bin/node" "/Users/~/.nvm/versions/node/v6.17.1/bin/npm" "install" "eslint@5.16.0"
  npm ERR! node v6.17.1
  npm ERR! npm  v3.10.10
  npm ERR! code ENOTSUP
  
  npm ERR! notsup Unsupported engine for esquery@1.2.0: wanted: {"node":"&gt;=8.0"} (current: {"node":"6.17.1","npm":"3.10.10"})
  npm ERR! notsup Not compatible with your version of node/npm: esquery@1.2.0
  npm ERR! notsup Not compatible with your version of node/npm: esquery@1.2.0
  npm ERR! notsup Required: {"node":"&gt;=8.0"}
  npm ERR! notsup Actual:   {"npm":"3.10.10","node":"6.17.1"}
  </code></pre>
  
  <p>Thanks in advance!</p>