title: Node 14 ECMAScript Modules and Packages
body: <p>In <a href="https://nodejs.org/api/esm.html#esm_terminology" rel="nofollow noreferrer">the documentation</a> for Node's native support of ECMAScript modules, they state</p>
  <blockquote>
  <p>There are three types of specifiers:</p>
  <ol>
  <li>...</li>
  <li>Bare specifiers like 'some-package' or 'some-package/shuffle'. They can refer to the main entry point of a package by the package name, or a specific feature module within a package prefixed by the package name as per the examples respectively. Including the file extension is only necessary for packages without an &quot;exports&quot; field.</li>
  <li>...</li>
  </ol>
  </blockquote>
  <p>The definition of bare specifiers indicate you can <code>import</code> ECMAScript Modules from &quot;packages&quot;.</p>
  <p>What's considered a &quot;package&quot; in Node.js?  Does node just search the entire <code>node_modules</code> folder for any folder with a package.json file and consider that a package?  Or is it more complicated than that? Is it the same for CommonJS modules and ESMAScript modules?</p>