title: Should I use ">=" (greater than or equal to) for the node or npm versions in package.json engines field for a node package?
body: <p>The package is developed locally using the <a href="https://nodejs.org" rel="nofollow noreferrer">LTS</a> version of <code>node</code> (currently <code>12.18.2</code>). Under <a href="https://docs.npmjs.com/files/package.json#engines" rel="nofollow noreferrer">engines</a>, I have <code>node</code> set to <code>12.18.2</code>, but I've noticed that using <code>&gt;=</code> is common (see <a href="https://github.com/yarnpkg/yarn/blob/master/package.json#L107" rel="nofollow noreferrer">yarn</a>) - how can I decide if I should &quot;relax&quot; my node version? I'm also considering <code>~12.18.2</code>.</p>
  <p><strong>Benefit</strong>: Package consumers won't get a warning if they're using a version of <code>node</code> that still works with the package, despite being higher than the version specified in the <code>package.json</code>.</p>
  <p><strong>Potential Risk</strong>: Is the concern that a future version of <code>node</code> will have a breaking change or deprecation that will affect my package?</p>
  <hr />
  <p>I have the same question about using <code>&gt;=</code> for the <code>npm</code> version.</p>