title: Is it possible to stop requireJS from adding the .js file extension automatically?
body: <p>I'm using requireJS to load scripts. It has <a href="http://requirejs.org/docs/api.html#config" rel="noreferrer">this detail in the docs</a>:</p>
  
  <blockquote>
    <p>The path that is used for a module name should not include the .js
    extension, since the path mapping could be for a directory.</p>
  </blockquote>
  
  <p>In my app, I map all of my script files in a config path, because they're dynamically generated at runtime (my scripts start life as things like <code>order.js</code> but become things like <code>order.min.b25a571965d02d9c54871b7636ca1c5e.js</code> (this is a hash of the file contents, for cachebusting purposes). </p>
  
  <p>In some cases, require will add a second .js extension to the end of these paths. Although I generate the dynamic paths on the server side and then populate the config path, I have to then write some extra javascript code to remove the <code>.js</code> extension from the problematic files.</p>
  
  <p>Reading the requireJS docs, I really don't understand why you'd ever want the path mapping to be used for a directory. Does this mean it's possible to somehow load an entire directory's worth of files in one call? I don't get it.</p>
  
  <p>Does anybody know if it's possible to just force require to stop adding .js to file paths so I don't have to hack around it?</p>
  
  <p>thanks.</p>
  
  <p>UPDATE: added some code samples as requested.</p>
  
  <p>This is inside my HTML file (it's a Scala project so we can't write these variables directly into a <code>.js</code> file):</p>
  
  <pre><code>foo.js.modules = {
      order               : '@Static("javascripts/order.min.js")',
      reqwest             : 'http://5.foo.appspot.com/js/libs/reqwest',
      bean                : 'http://4.foo.appspot.com/js/libs/bean.min',
      detect              : 'order!http://4.foo.appspot.com/js/detect/detect.js',
      images              : 'order!http://4.foo.appspot.com/js/detect/images.js',
      basicTemplate       : '@Static("javascripts/libs/basicTemplate.min.js")',
      trailExpander       : '@Static("javascripts/libs/trailExpander.min.js")',
      fetchDiscussion     : '@Static("javascripts/libs/fetchDiscussion.min.js")'
      mostPopular         : '@Static("javascripts/libs/mostPopular.min.js")'
  };
  </code></pre>
  
  <p>Then inside my <code>main.js</code>:</p>
  
  <pre><code>requirejs.config({
      paths: foo.js.modules
  });
  
  require([foo.js.modules.detect, foo.js.modules.images, "bean"], 
      function(detect, images, bean) {
          // do stuff
  });
  </code></pre>
  
  <p>In the example above, I have to use the string "bean" (which refers to the require path) rather than my direct object (like the others use <code>foo.js.modules.bar</code>) otherwise I get the extra <code>.js</code> appended.</p>
  
  <p>Hope this makes sense.</p>