title: Drupal and Require.js not playing nice - double load of jQuery
body: <p>I’ve been given a design library from a large cooperate client built utilizing Bootstrap 3 and Require.js. It’s very robust and well-built with the various scripts using Require.js to load jQuery. Problem is, Drupal has already loaded jQuery and the double load is causing some items to fail. If I remove all the Require.js calls, Drupal jQuery stuff works great. If I remove the base Drupal jQuery file, all the stuff using the Require.js stuff works great.  Here’ are options I have considered:</p>
  
  <ol>
  <li>Stop jQuery from loading with Drupal, use require to load jQuery on every page - I haven’t tried this yet, but it just seems wrong. I think I can remove jQuery with hook_library_alter() in my theme? Wondering if anyone has tried this… My front end and admin screens actually use 2 different themes, so I think I'd have to modify both. </li>
  <li>Stop jQuery from loading with Require.js – I tried this and none of the other libraries that are loaded with require.js can find query if it’s not loaded with Require.js, so I don’t think this option works. This is my first time using require.js so maybe there is some fun fix for this I haven't figured out?</li>
  <li>Add all libraries to the site with Drupal – This seems like a lot of messy work as I would have to remove all the require.js dependencies in the library, and there is an expectation that we not modify the library/framework so implementing new releases is easy. </li>
  </ol>
  
  <p>Any other recommendations?</p>
  
  <p><strong>UPDATE per Nikos Paraskevopoulos’ answer:</strong></p>
  
  <p>I have configured Drupal to load the jQuery version that came with the require.js package, and Drupal is happy with that. So now on each page I am loading in the following order:</p>
  
  <pre><code>/components/jquery/jquery.js
  /misc/jquery.once.js
  /misc/drupal.js
  /components/requirejs/require.js
  /js/require.config.js
  </code></pre>
  
  <p>My requires.config looks like this:</p>
  
  <pre><code>requirejs.config({
      baseUrl: "./",
      paths: {
          .....
          jquery:
          "components/jquery/jquery", "jquery-csv": "components/jquery-csv/src/jquery.csv",
          "jqueryui-sortable-amd": "components/jqueryui-sortable-amd/js/jquery-ui-1.10.2.custom",
          .....
      },
      shim: {
          "jquery-backstretch": [
              "jquery"
          ],
          masonry: [
              "jquery"
          ],
          OpenLayers: {
              exports: "OpenLayers"
          },
          "jquery-csv": [
              "jquery"
          ]
      }
  });
  </code></pre>
  
  <p>If I remove the jquery entry from paths, and add:</p>
  
  <pre><code>    jquery: {
          exports: 'jQuery' // NOTE THE CASE OF 'Q', THIS IS THE GLOBAL NAME
      }
  </code></pre>
  
  <p>I immediately get errors like:  </p>
  
  <p>Uncaught Error: Script error for: jqueryui-sortable-amd</p>
  
  <p>Which makes sense as they have all be declared together. uggg.</p>