title: What is the purpose of the 'node_modules' folder?
body: <p>What exactly is the <em>node_modules</em> folder and what is it for?</p>
  <p>I know when we download any library with <code>npm</code>, the library goes to folder <em>node_modules</em>. I also know that, when we are going to upload it (to GitHub, for example) we have to ignore the <em>node_modules</em> folder, because it takes a lot of space. Through file <em>package.json</em> we can download all dependencies using <code>npm i</code>.</p>
  <p>Let's say I want to deploy my app/website to some server/host, do I have to upload the <code>node_modules</code> folder to server as well?</p>
  <p>And another thing. Usually, I download my <a href="https://en.wikipedia.org/wiki/JQuery" rel="noreferrer">jQuery</a> and <a href="https://en.wikipedia.org/wiki/Bootstrap_%28front-end_framework%29" rel="noreferrer">Bootstrap</a> files from the website and copy in the content to the <em>css/js</em> folder inside my project, but this time I tried with <a href="https://en.wikipedia.org/wiki/Npm_(software)" rel="noreferrer">npm</a> and everything goes to folder <em>node_modules</em> and I'm using <a href="https://en.wikipedia.org/wiki/Apache_Cordova" rel="noreferrer">Cordova</a>. When I execute the command <code>cordova build</code>, neither my jQuery nor my Bootstrap files are generated.</p>
  <p>So those are my questions:</p>
  <ul>
  <li>if I want to host my project, do I really have to upload the <em>node_modules</em> folder as well?</li>
  <li>And when it's Cordova or <a href="https://en.wikipedia.org/wiki/Ionic_(mobile_app_framework)" rel="noreferrer">Ionic</a>, do I also have to
  copy the <em>node_modules</em> folder to the <em>www</em> folder?</li>
  <li>If so, what is the point of using npm to download libraries? Is this how it's really done? Which one is better? Going to the website, download the file, and paste inside www, or download through npm?</li>
  </ul>