[GIS] How to reference the ArcGIS Server JS API using RequireJS

arcgis-javascript-apijavascript

When using RequireJS to load a JavaScript library from a CDN, an example syntax is shown at https://github.com/requirejs/example-jquery-cdn:

requirejs.config({
    "paths": {
      "jquery": "//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min"
    }
});

How should the ArcGIS Server JS API be referenced? The page at https://developers.arcgis.com/javascript/ gives the syntax for a standard web page:

<script src="http://js.arcgis.com/3.12/"></script>

but when using RequireJS:

requirejs.config({
    'paths': {
      'arcgis': '//js.arcgis.com/3.12/'
    }
});

this returns NetworkError: 404 Not Found – http://js.arcgis.com/3.12/.js

What is the correct syntax for referencing the ArcGIS Server JS API when using RequireJS?

Best Answer

You would do this

requirejs.config({
  'paths': {
    'esri': 'http://js.arcgis.com/3.12/esri',
    'dojo': 'http://js.arcgis.com/3.12/dojo',
    'dojox': 'http://js.arcgis.com/3.12/dojox',
    'dijit': 'http://js.arcgis.com/3.12/dijit'
  }
});

Then require your modules in AMD style like this

requirejs(["esri/dijit/BasemapGallery", 
         "dojo/dom", 
         "dijit/form/Button", 
         "dojox/grid/DataGrid"], 
         function(BasemapGallery, dom, Button, DataGrid){
});