<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: how to hosted locally arcgis js api v4.2 in ArcGIS JavaScript Maps SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/how-to-hosted-locally-arcgis-js-api-v4-2/m-p/1096625#M74613</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;If you look in the extracted download of 4.2 you will find a document that outlines how to host it locally:&lt;/P&gt;&lt;P&gt;&amp;lt;API extraction folder&amp;gt;/arcgis_js_v420_api/arcgis_js_v420_api/arcgis_js_api/javascript/downloads/install-windows/index.html&lt;/P&gt;&lt;H2&gt;Installing the ArcGIS API for JavaScript library on Windows&lt;/H2&gt;&lt;P&gt;The instructions below assume that you are installing the ArcGIS API for JavaScript library in the following location&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.example.com/javascript/api/4.20/" target="_blank" rel="noopener"&gt;https://www.example.com/javascript/api/4.20/&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(C:\Inetpub\wwwroot\javascript\api\4.20\) on&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.iis.net" target="_blank" rel="noopener"&gt;Internet Information Services (IIS)&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;for Windows® Server, where&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://en.wikipedia.org/wiki/Fully_qualified_domain_name" target="_blank" rel="noopener"&gt;www.example.com&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is the combination of the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://en.wikipedia.org/wiki/Fully_qualified_domain_name" target="_blank" rel="noopener"&gt;fully qualified domain name&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://en.wikipedia.org/wiki/Top-level_domain" target="_blank" rel="noopener"&gt;top level domain&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;of your web site.&lt;/P&gt;&lt;P&gt;If you are using a non-Windows operating system, please see the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://community.esri.com/../install-linux/index.html" target="_blank" rel="noopener"&gt;instructions on deploying the library on Unix/Linux&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;The ArcGIS API for JavaScript library can be copied in its entirety to your web server directory. After copying the files to your web server, you will need to edit some files to specify the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;baseUrl&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(&lt;A href="http://www.example.com/javascript/api/4.20/" target="_blank" rel="noopener"&gt;www.example.com/javascript/api/4.20/&lt;/A&gt;) for the configuration. (C:\Inetpub\wwwroot\javascript\api\4.20\). Copy&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;\arcgis_js_v420_api\arcgis_js_api\javascript\4.20\&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and all its contents from the ArcGIS API for JavaScript download to your web server. In this example the files are copied to:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;C:\Inetpub\wwwroot\javascript\api\4.20\.&lt;/P&gt;&lt;H2&gt;Requirements&lt;/H2&gt;&lt;P&gt;The default hosting configuration for both the ArcGIS API for JavaScript library and documentation is&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;HTTPS.&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;HTTPS&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;requires your web server to use a web server certificate.&lt;/LI&gt;&lt;LI&gt;IIS will need to have the following&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;MIME&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;types registered.extension MIME/type Description &lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;.ttf&lt;/TD&gt;&lt;TD&gt;application/octet-stream&lt;/TD&gt;&lt;TD&gt;True Type Fonts&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;.wasm&lt;/TD&gt;&lt;TD&gt;application/wasm&lt;/TD&gt;&lt;TD&gt;&lt;A href="http://webassembly.org/" target="_blank" rel="noopener"&gt;WebAssembly&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;.woff&lt;/TD&gt;&lt;TD&gt;application/font-woff&lt;/TD&gt;&lt;TD&gt;&lt;A href="https://developer.mozilla.org/en-US/docs/Web/Guide/WOFF" target="_blank" rel="noopener"&gt;Web Open Font Format&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;.woff2&lt;/TD&gt;&lt;TD&gt;application/font-woff2&lt;/TD&gt;&lt;TD&gt;&lt;A href="https://www.w3.org/TR/WOFF2/" target="_blank" rel="noopener"&gt;WOFF File Format 2.0&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;.wsv&lt;/TD&gt;&lt;TD&gt;application/octet-stream&lt;/TD&gt;&lt;TD&gt;Supports&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;SceneView's stars visualization&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/LI&gt;&lt;LI&gt;&lt;A href="https://developers.google.com/web/fundamentals/security/encrypt-in-transit/why-https" target="_blank" rel="noopener"&gt;Google: Why HTTPS Matters&lt;/A&gt;&lt;/LI&gt;&lt;LI&gt;&lt;A href="https://support.google.com/webmasters/answer/6073543" target="_blank" rel="noopener"&gt;Google: Secure your site with HTTPS&lt;/A&gt;&lt;/LI&gt;&lt;LI&gt;&lt;A href="#using-http" target="_blank" rel="noopener"&gt;Ignore and use HTTP&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;H2&gt;Modify the Build (manually)&lt;/H2&gt;&lt;OL&gt;&lt;LI&gt;Open&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;C:\Inetpub\wwwroot\javascript\api\4.20\init.js&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;in a text editor and search for the text&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;[HOSTNAME_AND_PATH_TO_JSAPI], and replace this text with&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://www.example.com/javascript/api/4.20/init.js" target="_blank" rel="noopener"&gt;www.example.com/javascript/api/4.20/init.js&lt;/A&gt;.&lt;/LI&gt;&lt;/OL&gt;&lt;H2&gt;Modify the Build (script)&lt;/H2&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;EM&gt;Note&lt;/EM&gt;: Scripting the update might be useful in a multi-machine deployment. Otherwise, it is not necessary.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;This section will modify the ArcGIS API for JavaScript library&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;[HOSTNAME_AND_PATH_TO_JSAPI]dojo&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;text with&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://www.example.com/javascript/api/4.20/init.js" target="_blank" rel="noopener"&gt;www.example.com/javascript/api/4.20/init.js&lt;/A&gt;.&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Node.js must be installed on the machine running the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Example Node.js script&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(update-library.js).&lt;/LI&gt;&lt;LI&gt;Create a file such as&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;update-library.js&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;in a local directory.&lt;/LI&gt;&lt;LI&gt;Copy the contents of the example Node.js script (update-library.js) into the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;update-library.js&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;file.&lt;/LI&gt;&lt;LI&gt;Open a terminal window and change directory (cd) to the directory containing the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;update-library.js&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;script.&lt;/LI&gt;&lt;LI&gt;Verify&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;node --version&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;return the currently installed version of Node.js.&lt;/LI&gt;&lt;LI&gt;Update the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;localHost,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;apiDirectory, and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;jsapiDownloadLocation&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;script variables.&lt;/LI&gt;&lt;LI&gt;The&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;apiDirectory&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;jsapiDownloadLocation&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;script variables will not need modified if using the same directories described in this documentation.&lt;/LI&gt;&lt;LI&gt;Execute the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;update-library.js&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;script using the command&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;node update-library.js.&lt;/LI&gt;&lt;LI&gt;Open&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.example.com/javascript/api/4.20/init.js" target="_blank" rel="noopener"&gt;https://www.example.com/javascript/api/4.20/init.js&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;in a browser of your choice.&lt;/LI&gt;&lt;LI&gt;Search for&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;baseUrl:"&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and verify&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;[HOSTNAME_AND_PATH_TO_JSAPI]dojo&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;has been replaced with the value of&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;localHost.&lt;/LI&gt;&lt;/OL&gt;&lt;H3&gt;Example Node.js script&lt;/H3&gt;&lt;P&gt;The code sample below is written in JavaScript for&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://nodejs.org/en/" target="_blank" rel="noopener"&gt;Node.js&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and will automate replacing the ArcGIS API for JavaScript library&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;[HOSTNAME_AND_PATH_TO_JSAPI]dojo&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;text with&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://www.example.com/javascript/api/4.20/init.js" target="_blank" rel="noopener"&gt;www.example.com/javascript/api/4.20/init.js&lt;/A&gt;.&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;EM&gt;Note&lt;/EM&gt;: A script like&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;update-library.js&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;could be written in any scripting language that supports reading/writing files and some type of string substitution manipulation such as regular expressions.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;PRE&gt;&lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// update-library.js&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;//&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// Helper script to replace the ArcGIS API for JavaScript library&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// `[HOSTNAME_AND_PATH_TO_JSAPI]dojo` text with `www.example.com/javascript/api/4.20/init.js`.&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;//&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// Note: requires node version 7.10.0 and npm version 4.2.0 or higher.&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
&lt;SPAN class="hljs-keyword"&gt;let&lt;/SPAN&gt; fs                       = &lt;SPAN class="hljs-built_in"&gt;require&lt;/SPAN&gt;(&lt;SPAN class="hljs-string"&gt;"fs"&lt;/SPAN&gt;),
    path                     = &lt;SPAN class="hljs-built_in"&gt;require&lt;/SPAN&gt;(&lt;SPAN class="hljs-string"&gt;"path"&lt;/SPAN&gt;),
    util                     = &lt;SPAN class="hljs-built_in"&gt;require&lt;/SPAN&gt;(&lt;SPAN class="hljs-string"&gt;"util"&lt;/SPAN&gt;),
    &lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// hostname to replace js.arcgis.com in the library such as:&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// www.example.com&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// apiDirectory would be the virtual directory in the web server hosting&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// the ArcGIS API for JavaScript library&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
    localHost                = &lt;SPAN class="hljs-string"&gt;"www.example.com"&lt;/SPAN&gt;,
    apiDirectory             = &lt;SPAN class="hljs-string"&gt;"javascript/api/4.20/init.js"&lt;/SPAN&gt;,
    &lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// path to the downloaded ArcGIS API for JavaScript library&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// download archive contents arcgis_js_v%jsapi_version.replace(".", "")%_api\arcgis_js_api\4.20\&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// to IIS virtual directory C:\Inetpub\wwwroot\javascript\api\4.20\&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
    jsapiDownloadLocation    = path.join(&lt;SPAN class="hljs-string"&gt;"C:"&lt;/SPAN&gt;, &lt;SPAN class="hljs-string"&gt;"inetpub"&lt;/SPAN&gt;, &lt;SPAN class="hljs-string"&gt;"wwwroot"&lt;/SPAN&gt;, &lt;SPAN class="hljs-string"&gt;"javascript"&lt;/SPAN&gt;, &lt;SPAN class="hljs-string"&gt;"api"&lt;/SPAN&gt;, &lt;SPAN class="hljs-string"&gt;"4.20"&lt;/SPAN&gt;),
    &lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// Regular expression to match the template text&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// [HOSTNAME_AND_PATH_TO_JSAPI] in&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// baseUrl:"https://[HOSTNAME_AND_PATH_TO_JSAPI]dojo"&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
    hostnameAndPathRegEx            = &lt;SPAN class="hljs-regexp"&gt;/\[HOSTNAME_AND_PATH_TO_JSAPI\]dojo/i&lt;/SPAN&gt;,
    &lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// base url for the locally hosted ArcGIS API for JavaScript such as:&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// www.example.com/javascript/api/4.20/&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
    jsapiURLBaseLocal        = util.format(&lt;SPAN class="hljs-string"&gt;"%s/%s"&lt;/SPAN&gt;, localHost, apiDirectory),
    &lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// Dojo file containing the CDN link to ArcGIS API for JavaScript&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;//C:\Inetpub\wwwroot\javascript\api4.20\init.js&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
    jsapiInitFile = path.join(jsapiDownloadLocation, &lt;SPAN class="hljs-string"&gt;"init.js"&lt;/SPAN&gt;);

&lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// 1) Read the ArcGIS API for JavaScript library files&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// 2) Replace the script src attribute for the ArcGIS API for JavaScript CDN&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;

&lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// Read the init file contents from disk&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
&lt;SPAN class="hljs-built_in"&gt;console&lt;/SPAN&gt;.log(&lt;SPAN class="hljs-string"&gt;"library - reading %s"&lt;/SPAN&gt;, jsapiInitFile);
&lt;SPAN class="hljs-keyword"&gt;let&lt;/SPAN&gt; rawInitContent = fs.readFileSync(jsapiInitFile, &lt;SPAN class="hljs-string"&gt;"utf-8"&lt;/SPAN&gt;);
&lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// Replace the script src attribute for the ArcGIS API for JavaScript CDN&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
&lt;SPAN class="hljs-built_in"&gt;console&lt;/SPAN&gt;.log(&lt;SPAN class="hljs-string"&gt;"library - replacing script tag for %s"&lt;/SPAN&gt;, jsapiInitFile);
&lt;SPAN class="hljs-keyword"&gt;let&lt;/SPAN&gt; updatedInitContent = rawInitContent.replace(hostnameAndPathRegEx, jsapiURLBaseLocal);
&lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// Save the init file contents to disk&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
&lt;SPAN class="hljs-built_in"&gt;console&lt;/SPAN&gt;.log(&lt;SPAN class="hljs-string"&gt;"library - saving %s"&lt;/SPAN&gt;, jsapiInitFile);
fs.writeFileSync(jsapiInitFile, updatedInitContent, &lt;SPAN class="hljs-string"&gt;"utf-8"&lt;/SPAN&gt;);&lt;/PRE&gt;&lt;H2&gt;Test the installation&lt;/H2&gt;&lt;P&gt;Now you should be able to access the ArcGIS API for JavaScript library from your web server using the following URL:&lt;/P&gt;&lt;PRE&gt;&lt;SPAN class="hljs-tag"&gt;&amp;lt;&lt;SPAN class="hljs-name"&gt;script&lt;/SPAN&gt; &lt;SPAN class="hljs-attr"&gt;src&lt;/SPAN&gt;=&lt;SPAN class="hljs-string"&gt;"https://www.example.com/javascript/api/4.20/init.js"&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN class="hljs-tag"&gt;&amp;lt;/&lt;SPAN class="hljs-name"&gt;script&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
&lt;/PRE&gt;&lt;P&gt;Test your installation. You can use the following test code to validate your ArcGIS API for JavaScript library installation.&lt;/P&gt;&lt;PRE&gt;&lt;SPAN class="hljs-meta"&gt;&amp;lt;!DOCTYPE &lt;SPAN class="hljs-meta-keyword"&gt;html&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
&lt;SPAN class="hljs-tag"&gt;&amp;lt;&lt;SPAN class="hljs-name"&gt;html&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
  &lt;SPAN class="hljs-tag"&gt;&amp;lt;&lt;SPAN class="hljs-name"&gt;head&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class="hljs-tag"&gt;&amp;lt;&lt;SPAN class="hljs-name"&gt;meta&lt;/SPAN&gt; &lt;SPAN class="hljs-attr"&gt;http-equiv&lt;/SPAN&gt;=&lt;SPAN class="hljs-string"&gt;"Content-Type"&lt;/SPAN&gt; &lt;SPAN class="hljs-attr"&gt;content&lt;/SPAN&gt;=&lt;SPAN class="hljs-string"&gt;"text/html; charset=utf-8"&lt;/SPAN&gt; /&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class="hljs-tag"&gt;&amp;lt;&lt;SPAN class="hljs-name"&gt;meta&lt;/SPAN&gt; &lt;SPAN class="hljs-attr"&gt;name&lt;/SPAN&gt;=&lt;SPAN class="hljs-string"&gt;"viewport"&lt;/SPAN&gt; &lt;SPAN class="hljs-attr"&gt;content&lt;/SPAN&gt;=&lt;SPAN class="hljs-string"&gt;"initial-scale=1, maximum-scale=1,user-scalable=no"&lt;/SPAN&gt; /&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class="hljs-tag"&gt;&amp;lt;&lt;SPAN class="hljs-name"&gt;title&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;Test Map&lt;SPAN class="hljs-tag"&gt;&amp;lt;/&lt;SPAN class="hljs-name"&gt;title&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class="hljs-tag"&gt;&amp;lt;&lt;SPAN class="hljs-name"&gt;link&lt;/SPAN&gt; &lt;SPAN class="hljs-attr"&gt;rel&lt;/SPAN&gt;=&lt;SPAN class="hljs-string"&gt;"stylesheet"&lt;/SPAN&gt; &lt;SPAN class="hljs-attr"&gt;href&lt;/SPAN&gt;=&lt;SPAN class="hljs-string"&gt;"https://www.example.com/javascript/api/4.20/esri/themes/light/main.css"&lt;/SPAN&gt; /&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class="hljs-tag"&gt;&amp;lt;&lt;SPAN class="hljs-name"&gt;style&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN class="css"&gt;      &lt;SPAN class="hljs-selector-tag"&gt;html&lt;/SPAN&gt;,
      &lt;SPAN class="hljs-selector-tag"&gt;body&lt;/SPAN&gt;,
      &lt;SPAN class="hljs-selector-id"&gt;#viewDiv&lt;/SPAN&gt; {
        &lt;SPAN class="hljs-attribute"&gt;margin&lt;/SPAN&gt;: &lt;SPAN class="hljs-number"&gt;0&lt;/SPAN&gt;;
        &lt;SPAN class="hljs-attribute"&gt;padding&lt;/SPAN&gt;: &lt;SPAN class="hljs-number"&gt;0&lt;/SPAN&gt;;
        &lt;SPAN class="hljs-attribute"&gt;width&lt;/SPAN&gt;: &lt;SPAN class="hljs-number"&gt;100%&lt;/SPAN&gt;;
        &lt;SPAN class="hljs-attribute"&gt;height&lt;/SPAN&gt;: &lt;SPAN class="hljs-number"&gt;100%&lt;/SPAN&gt;;
      }
    &lt;/SPAN&gt;&lt;SPAN class="hljs-tag"&gt;&amp;lt;/&lt;SPAN class="hljs-name"&gt;style&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class="hljs-tag"&gt;&amp;lt;&lt;SPAN class="hljs-name"&gt;script&lt;/SPAN&gt; &lt;SPAN class="hljs-attr"&gt;src&lt;/SPAN&gt;=&lt;SPAN class="hljs-string"&gt;"https://www.example.com/javascript/api/4.20/init.js"&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN class="hljs-tag"&gt;&amp;lt;/&lt;SPAN class="hljs-name"&gt;script&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class="hljs-tag"&gt;&amp;lt;&lt;SPAN class="hljs-name"&gt;script&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN class="javascript"&gt;      &lt;SPAN class="hljs-built_in"&gt;require&lt;/SPAN&gt;([
        &lt;SPAN class="hljs-string"&gt;"esri/Basemap"&lt;/SPAN&gt;,
        &lt;SPAN class="hljs-string"&gt;"esri/layers/TileLayer"&lt;/SPAN&gt;,
        &lt;SPAN class="hljs-string"&gt;"esri/Map"&lt;/SPAN&gt;,
        &lt;SPAN class="hljs-string"&gt;"esri/views/MapView"&lt;/SPAN&gt;
      ], &lt;SPAN class="hljs-function"&gt;&lt;SPAN class="hljs-keyword"&gt;function&lt;/SPAN&gt; (&lt;SPAN class="hljs-params"&gt;Basemap, TileLayer, &lt;SPAN class="hljs-built_in"&gt;Map&lt;/SPAN&gt;, MapView&lt;/SPAN&gt;)&lt;/SPAN&gt;{
        &lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
        &lt;SPAN class="hljs-comment"&gt;// If you do not have public internet access then use the Basemap class&lt;/SPAN&gt;
        &lt;SPAN class="hljs-comment"&gt;// and point this URL to your own locally accessible cached service.&lt;/SPAN&gt;
        &lt;SPAN class="hljs-comment"&gt;//&lt;/SPAN&gt;
        &lt;SPAN class="hljs-comment"&gt;// Otherwise you can just use one of the named hosted ArcGIS services.&lt;/SPAN&gt;
        &lt;SPAN class="hljs-comment"&gt;// https://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer&lt;/SPAN&gt;
        &lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
        &lt;SPAN class="hljs-keyword"&gt;const&lt;/SPAN&gt; layer = &lt;SPAN class="hljs-keyword"&gt;new&lt;/SPAN&gt; TileLayer({
          &lt;SPAN class="hljs-attr"&gt;url&lt;/SPAN&gt;: &lt;SPAN class="hljs-string"&gt;"https://www.example.com/arcgis/rest/services/Folder/Custom_Base_Map/MapServer"&lt;/SPAN&gt;
        });
        &lt;SPAN class="hljs-keyword"&gt;const&lt;/SPAN&gt; customBasemap = &lt;SPAN class="hljs-keyword"&gt;new&lt;/SPAN&gt; Basemap({
          &lt;SPAN class="hljs-attr"&gt;baseLayers&lt;/SPAN&gt;: [layer],
          &lt;SPAN class="hljs-attr"&gt;title&lt;/SPAN&gt;: &lt;SPAN class="hljs-string"&gt;"Custom Basemap"&lt;/SPAN&gt;,
          &lt;SPAN class="hljs-attr"&gt;id&lt;/SPAN&gt;: &lt;SPAN class="hljs-string"&gt;"myBasemap"&lt;/SPAN&gt;
        });
        &lt;SPAN class="hljs-keyword"&gt;const&lt;/SPAN&gt; myMap = &lt;SPAN class="hljs-keyword"&gt;new&lt;/SPAN&gt; &lt;SPAN class="hljs-built_in"&gt;Map&lt;/SPAN&gt;({
          &lt;SPAN class="hljs-attr"&gt;basemap&lt;/SPAN&gt;: customBasemap
        });
        &lt;SPAN class="hljs-keyword"&gt;const&lt;/SPAN&gt; view = &lt;SPAN class="hljs-keyword"&gt;new&lt;/SPAN&gt; MapView({
          &lt;SPAN class="hljs-attr"&gt;center&lt;/SPAN&gt;: [-&lt;SPAN class="hljs-number"&gt;111.87&lt;/SPAN&gt;, &lt;SPAN class="hljs-number"&gt;40.57&lt;/SPAN&gt;], &lt;SPAN class="hljs-comment"&gt;// long, lat&lt;/SPAN&gt;
          &lt;SPAN class="hljs-attr"&gt;container&lt;/SPAN&gt;: &lt;SPAN class="hljs-string"&gt;"viewDiv"&lt;/SPAN&gt;,
          &lt;SPAN class="hljs-attr"&gt;map&lt;/SPAN&gt;: myMap,
          &lt;SPAN class="hljs-attr"&gt;zoom&lt;/SPAN&gt;: &lt;SPAN class="hljs-number"&gt;6&lt;/SPAN&gt;
        });
      });
    &lt;/SPAN&gt;&lt;SPAN class="hljs-tag"&gt;&amp;lt;/&lt;SPAN class="hljs-name"&gt;script&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
  &lt;SPAN class="hljs-tag"&gt;&amp;lt;/&lt;SPAN class="hljs-name"&gt;head&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
  &lt;SPAN class="hljs-tag"&gt;&amp;lt;&lt;SPAN class="hljs-name"&gt;body&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class="hljs-tag"&gt;&amp;lt;&lt;SPAN class="hljs-name"&gt;div&lt;/SPAN&gt; &lt;SPAN class="hljs-attr"&gt;id&lt;/SPAN&gt;=&lt;SPAN class="hljs-string"&gt;"viewDiv"&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN class="hljs-tag"&gt;&amp;lt;/&lt;SPAN class="hljs-name"&gt;div&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
  &lt;SPAN class="hljs-tag"&gt;&amp;lt;/&lt;SPAN class="hljs-name"&gt;body&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
&lt;SPAN class="hljs-tag"&gt;&amp;lt;/&lt;SPAN class="hljs-name"&gt;html&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
&lt;/PRE&gt;&lt;H2&gt;Installing Node.js&lt;/H2&gt;&lt;P&gt;For assistance installing Node.js on Windows, see the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Installing Node.js topic&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;in the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Windows: Hosting the ArcGIS API for JavaScript documentation&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;help topic.&lt;/P&gt;</description>
    <pubDate>Thu, 09 Sep 2021 04:42:54 GMT</pubDate>
    <dc:creator>mdonnelly</dc:creator>
    <dc:date>2021-09-09T04:42:54Z</dc:date>
    <item>
      <title>how to hosted locally arcgis js api v4.2</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/how-to-hosted-locally-arcgis-js-api-v4-2/m-p/1094244#M74498</link>
      <description>&lt;P&gt;i cannot find the document for&amp;nbsp;hosted locally&amp;nbsp;arcgis js api v4.2,&lt;/P&gt;&lt;P&gt;It seems different from all previous versions.&lt;/P&gt;&lt;P&gt;how can i do&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 01 Sep 2021 02:46:15 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/how-to-hosted-locally-arcgis-js-api-v4-2/m-p/1094244#M74498</guid>
      <dc:creator>zkf</dc:creator>
      <dc:date>2021-09-01T02:46:15Z</dc:date>
    </item>
    <item>
      <title>Re: how to hosted locally arcgis js api v4.2</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/how-to-hosted-locally-arcgis-js-api-v4-2/m-p/1096625#M74613</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;If you look in the extracted download of 4.2 you will find a document that outlines how to host it locally:&lt;/P&gt;&lt;P&gt;&amp;lt;API extraction folder&amp;gt;/arcgis_js_v420_api/arcgis_js_v420_api/arcgis_js_api/javascript/downloads/install-windows/index.html&lt;/P&gt;&lt;H2&gt;Installing the ArcGIS API for JavaScript library on Windows&lt;/H2&gt;&lt;P&gt;The instructions below assume that you are installing the ArcGIS API for JavaScript library in the following location&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.example.com/javascript/api/4.20/" target="_blank" rel="noopener"&gt;https://www.example.com/javascript/api/4.20/&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(C:\Inetpub\wwwroot\javascript\api\4.20\) on&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.iis.net" target="_blank" rel="noopener"&gt;Internet Information Services (IIS)&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;for Windows® Server, where&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://en.wikipedia.org/wiki/Fully_qualified_domain_name" target="_blank" rel="noopener"&gt;www.example.com&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is the combination of the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://en.wikipedia.org/wiki/Fully_qualified_domain_name" target="_blank" rel="noopener"&gt;fully qualified domain name&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://en.wikipedia.org/wiki/Top-level_domain" target="_blank" rel="noopener"&gt;top level domain&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;of your web site.&lt;/P&gt;&lt;P&gt;If you are using a non-Windows operating system, please see the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://community.esri.com/../install-linux/index.html" target="_blank" rel="noopener"&gt;instructions on deploying the library on Unix/Linux&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;The ArcGIS API for JavaScript library can be copied in its entirety to your web server directory. After copying the files to your web server, you will need to edit some files to specify the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;baseUrl&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(&lt;A href="http://www.example.com/javascript/api/4.20/" target="_blank" rel="noopener"&gt;www.example.com/javascript/api/4.20/&lt;/A&gt;) for the configuration. (C:\Inetpub\wwwroot\javascript\api\4.20\). Copy&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;\arcgis_js_v420_api\arcgis_js_api\javascript\4.20\&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and all its contents from the ArcGIS API for JavaScript download to your web server. In this example the files are copied to:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;C:\Inetpub\wwwroot\javascript\api\4.20\.&lt;/P&gt;&lt;H2&gt;Requirements&lt;/H2&gt;&lt;P&gt;The default hosting configuration for both the ArcGIS API for JavaScript library and documentation is&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;HTTPS.&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;HTTPS&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;requires your web server to use a web server certificate.&lt;/LI&gt;&lt;LI&gt;IIS will need to have the following&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;MIME&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;types registered.extension MIME/type Description &lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;.ttf&lt;/TD&gt;&lt;TD&gt;application/octet-stream&lt;/TD&gt;&lt;TD&gt;True Type Fonts&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;.wasm&lt;/TD&gt;&lt;TD&gt;application/wasm&lt;/TD&gt;&lt;TD&gt;&lt;A href="http://webassembly.org/" target="_blank" rel="noopener"&gt;WebAssembly&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;.woff&lt;/TD&gt;&lt;TD&gt;application/font-woff&lt;/TD&gt;&lt;TD&gt;&lt;A href="https://developer.mozilla.org/en-US/docs/Web/Guide/WOFF" target="_blank" rel="noopener"&gt;Web Open Font Format&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;.woff2&lt;/TD&gt;&lt;TD&gt;application/font-woff2&lt;/TD&gt;&lt;TD&gt;&lt;A href="https://www.w3.org/TR/WOFF2/" target="_blank" rel="noopener"&gt;WOFF File Format 2.0&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;.wsv&lt;/TD&gt;&lt;TD&gt;application/octet-stream&lt;/TD&gt;&lt;TD&gt;Supports&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;SceneView's stars visualization&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/LI&gt;&lt;LI&gt;&lt;A href="https://developers.google.com/web/fundamentals/security/encrypt-in-transit/why-https" target="_blank" rel="noopener"&gt;Google: Why HTTPS Matters&lt;/A&gt;&lt;/LI&gt;&lt;LI&gt;&lt;A href="https://support.google.com/webmasters/answer/6073543" target="_blank" rel="noopener"&gt;Google: Secure your site with HTTPS&lt;/A&gt;&lt;/LI&gt;&lt;LI&gt;&lt;A href="#using-http" target="_blank" rel="noopener"&gt;Ignore and use HTTP&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;H2&gt;Modify the Build (manually)&lt;/H2&gt;&lt;OL&gt;&lt;LI&gt;Open&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;C:\Inetpub\wwwroot\javascript\api\4.20\init.js&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;in a text editor and search for the text&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;[HOSTNAME_AND_PATH_TO_JSAPI], and replace this text with&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://www.example.com/javascript/api/4.20/init.js" target="_blank" rel="noopener"&gt;www.example.com/javascript/api/4.20/init.js&lt;/A&gt;.&lt;/LI&gt;&lt;/OL&gt;&lt;H2&gt;Modify the Build (script)&lt;/H2&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;EM&gt;Note&lt;/EM&gt;: Scripting the update might be useful in a multi-machine deployment. Otherwise, it is not necessary.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;This section will modify the ArcGIS API for JavaScript library&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;[HOSTNAME_AND_PATH_TO_JSAPI]dojo&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;text with&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://www.example.com/javascript/api/4.20/init.js" target="_blank" rel="noopener"&gt;www.example.com/javascript/api/4.20/init.js&lt;/A&gt;.&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Node.js must be installed on the machine running the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Example Node.js script&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(update-library.js).&lt;/LI&gt;&lt;LI&gt;Create a file such as&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;update-library.js&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;in a local directory.&lt;/LI&gt;&lt;LI&gt;Copy the contents of the example Node.js script (update-library.js) into the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;update-library.js&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;file.&lt;/LI&gt;&lt;LI&gt;Open a terminal window and change directory (cd) to the directory containing the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;update-library.js&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;script.&lt;/LI&gt;&lt;LI&gt;Verify&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;node --version&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;return the currently installed version of Node.js.&lt;/LI&gt;&lt;LI&gt;Update the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;localHost,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;apiDirectory, and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;jsapiDownloadLocation&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;script variables.&lt;/LI&gt;&lt;LI&gt;The&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;apiDirectory&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;jsapiDownloadLocation&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;script variables will not need modified if using the same directories described in this documentation.&lt;/LI&gt;&lt;LI&gt;Execute the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;update-library.js&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;script using the command&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;node update-library.js.&lt;/LI&gt;&lt;LI&gt;Open&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.example.com/javascript/api/4.20/init.js" target="_blank" rel="noopener"&gt;https://www.example.com/javascript/api/4.20/init.js&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;in a browser of your choice.&lt;/LI&gt;&lt;LI&gt;Search for&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;baseUrl:"&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and verify&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;[HOSTNAME_AND_PATH_TO_JSAPI]dojo&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;has been replaced with the value of&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;localHost.&lt;/LI&gt;&lt;/OL&gt;&lt;H3&gt;Example Node.js script&lt;/H3&gt;&lt;P&gt;The code sample below is written in JavaScript for&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://nodejs.org/en/" target="_blank" rel="noopener"&gt;Node.js&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and will automate replacing the ArcGIS API for JavaScript library&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;[HOSTNAME_AND_PATH_TO_JSAPI]dojo&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;text with&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://www.example.com/javascript/api/4.20/init.js" target="_blank" rel="noopener"&gt;www.example.com/javascript/api/4.20/init.js&lt;/A&gt;.&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;EM&gt;Note&lt;/EM&gt;: A script like&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;update-library.js&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;could be written in any scripting language that supports reading/writing files and some type of string substitution manipulation such as regular expressions.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;PRE&gt;&lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// update-library.js&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;//&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// Helper script to replace the ArcGIS API for JavaScript library&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// `[HOSTNAME_AND_PATH_TO_JSAPI]dojo` text with `www.example.com/javascript/api/4.20/init.js`.&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;//&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// Note: requires node version 7.10.0 and npm version 4.2.0 or higher.&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
&lt;SPAN class="hljs-keyword"&gt;let&lt;/SPAN&gt; fs                       = &lt;SPAN class="hljs-built_in"&gt;require&lt;/SPAN&gt;(&lt;SPAN class="hljs-string"&gt;"fs"&lt;/SPAN&gt;),
    path                     = &lt;SPAN class="hljs-built_in"&gt;require&lt;/SPAN&gt;(&lt;SPAN class="hljs-string"&gt;"path"&lt;/SPAN&gt;),
    util                     = &lt;SPAN class="hljs-built_in"&gt;require&lt;/SPAN&gt;(&lt;SPAN class="hljs-string"&gt;"util"&lt;/SPAN&gt;),
    &lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// hostname to replace js.arcgis.com in the library such as:&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// www.example.com&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// apiDirectory would be the virtual directory in the web server hosting&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// the ArcGIS API for JavaScript library&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
    localHost                = &lt;SPAN class="hljs-string"&gt;"www.example.com"&lt;/SPAN&gt;,
    apiDirectory             = &lt;SPAN class="hljs-string"&gt;"javascript/api/4.20/init.js"&lt;/SPAN&gt;,
    &lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// path to the downloaded ArcGIS API for JavaScript library&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// download archive contents arcgis_js_v%jsapi_version.replace(".", "")%_api\arcgis_js_api\4.20\&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// to IIS virtual directory C:\Inetpub\wwwroot\javascript\api\4.20\&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
    jsapiDownloadLocation    = path.join(&lt;SPAN class="hljs-string"&gt;"C:"&lt;/SPAN&gt;, &lt;SPAN class="hljs-string"&gt;"inetpub"&lt;/SPAN&gt;, &lt;SPAN class="hljs-string"&gt;"wwwroot"&lt;/SPAN&gt;, &lt;SPAN class="hljs-string"&gt;"javascript"&lt;/SPAN&gt;, &lt;SPAN class="hljs-string"&gt;"api"&lt;/SPAN&gt;, &lt;SPAN class="hljs-string"&gt;"4.20"&lt;/SPAN&gt;),
    &lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// Regular expression to match the template text&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// [HOSTNAME_AND_PATH_TO_JSAPI] in&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// baseUrl:"https://[HOSTNAME_AND_PATH_TO_JSAPI]dojo"&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
    hostnameAndPathRegEx            = &lt;SPAN class="hljs-regexp"&gt;/\[HOSTNAME_AND_PATH_TO_JSAPI\]dojo/i&lt;/SPAN&gt;,
    &lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// base url for the locally hosted ArcGIS API for JavaScript such as:&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// www.example.com/javascript/api/4.20/&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
    jsapiURLBaseLocal        = util.format(&lt;SPAN class="hljs-string"&gt;"%s/%s"&lt;/SPAN&gt;, localHost, apiDirectory),
    &lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// Dojo file containing the CDN link to ArcGIS API for JavaScript&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;//C:\Inetpub\wwwroot\javascript\api4.20\init.js&lt;/SPAN&gt;
    &lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
    jsapiInitFile = path.join(jsapiDownloadLocation, &lt;SPAN class="hljs-string"&gt;"init.js"&lt;/SPAN&gt;);

&lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// 1) Read the ArcGIS API for JavaScript library files&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// 2) Replace the script src attribute for the ArcGIS API for JavaScript CDN&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;

&lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// Read the init file contents from disk&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
&lt;SPAN class="hljs-built_in"&gt;console&lt;/SPAN&gt;.log(&lt;SPAN class="hljs-string"&gt;"library - reading %s"&lt;/SPAN&gt;, jsapiInitFile);
&lt;SPAN class="hljs-keyword"&gt;let&lt;/SPAN&gt; rawInitContent = fs.readFileSync(jsapiInitFile, &lt;SPAN class="hljs-string"&gt;"utf-8"&lt;/SPAN&gt;);
&lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// Replace the script src attribute for the ArcGIS API for JavaScript CDN&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
&lt;SPAN class="hljs-built_in"&gt;console&lt;/SPAN&gt;.log(&lt;SPAN class="hljs-string"&gt;"library - replacing script tag for %s"&lt;/SPAN&gt;, jsapiInitFile);
&lt;SPAN class="hljs-keyword"&gt;let&lt;/SPAN&gt; updatedInitContent = rawInitContent.replace(hostnameAndPathRegEx, jsapiURLBaseLocal);
&lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// Save the init file contents to disk&lt;/SPAN&gt;
&lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
&lt;SPAN class="hljs-built_in"&gt;console&lt;/SPAN&gt;.log(&lt;SPAN class="hljs-string"&gt;"library - saving %s"&lt;/SPAN&gt;, jsapiInitFile);
fs.writeFileSync(jsapiInitFile, updatedInitContent, &lt;SPAN class="hljs-string"&gt;"utf-8"&lt;/SPAN&gt;);&lt;/PRE&gt;&lt;H2&gt;Test the installation&lt;/H2&gt;&lt;P&gt;Now you should be able to access the ArcGIS API for JavaScript library from your web server using the following URL:&lt;/P&gt;&lt;PRE&gt;&lt;SPAN class="hljs-tag"&gt;&amp;lt;&lt;SPAN class="hljs-name"&gt;script&lt;/SPAN&gt; &lt;SPAN class="hljs-attr"&gt;src&lt;/SPAN&gt;=&lt;SPAN class="hljs-string"&gt;"https://www.example.com/javascript/api/4.20/init.js"&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN class="hljs-tag"&gt;&amp;lt;/&lt;SPAN class="hljs-name"&gt;script&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
&lt;/PRE&gt;&lt;P&gt;Test your installation. You can use the following test code to validate your ArcGIS API for JavaScript library installation.&lt;/P&gt;&lt;PRE&gt;&lt;SPAN class="hljs-meta"&gt;&amp;lt;!DOCTYPE &lt;SPAN class="hljs-meta-keyword"&gt;html&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
&lt;SPAN class="hljs-tag"&gt;&amp;lt;&lt;SPAN class="hljs-name"&gt;html&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
  &lt;SPAN class="hljs-tag"&gt;&amp;lt;&lt;SPAN class="hljs-name"&gt;head&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class="hljs-tag"&gt;&amp;lt;&lt;SPAN class="hljs-name"&gt;meta&lt;/SPAN&gt; &lt;SPAN class="hljs-attr"&gt;http-equiv&lt;/SPAN&gt;=&lt;SPAN class="hljs-string"&gt;"Content-Type"&lt;/SPAN&gt; &lt;SPAN class="hljs-attr"&gt;content&lt;/SPAN&gt;=&lt;SPAN class="hljs-string"&gt;"text/html; charset=utf-8"&lt;/SPAN&gt; /&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class="hljs-tag"&gt;&amp;lt;&lt;SPAN class="hljs-name"&gt;meta&lt;/SPAN&gt; &lt;SPAN class="hljs-attr"&gt;name&lt;/SPAN&gt;=&lt;SPAN class="hljs-string"&gt;"viewport"&lt;/SPAN&gt; &lt;SPAN class="hljs-attr"&gt;content&lt;/SPAN&gt;=&lt;SPAN class="hljs-string"&gt;"initial-scale=1, maximum-scale=1,user-scalable=no"&lt;/SPAN&gt; /&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class="hljs-tag"&gt;&amp;lt;&lt;SPAN class="hljs-name"&gt;title&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;Test Map&lt;SPAN class="hljs-tag"&gt;&amp;lt;/&lt;SPAN class="hljs-name"&gt;title&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class="hljs-tag"&gt;&amp;lt;&lt;SPAN class="hljs-name"&gt;link&lt;/SPAN&gt; &lt;SPAN class="hljs-attr"&gt;rel&lt;/SPAN&gt;=&lt;SPAN class="hljs-string"&gt;"stylesheet"&lt;/SPAN&gt; &lt;SPAN class="hljs-attr"&gt;href&lt;/SPAN&gt;=&lt;SPAN class="hljs-string"&gt;"https://www.example.com/javascript/api/4.20/esri/themes/light/main.css"&lt;/SPAN&gt; /&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class="hljs-tag"&gt;&amp;lt;&lt;SPAN class="hljs-name"&gt;style&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN class="css"&gt;      &lt;SPAN class="hljs-selector-tag"&gt;html&lt;/SPAN&gt;,
      &lt;SPAN class="hljs-selector-tag"&gt;body&lt;/SPAN&gt;,
      &lt;SPAN class="hljs-selector-id"&gt;#viewDiv&lt;/SPAN&gt; {
        &lt;SPAN class="hljs-attribute"&gt;margin&lt;/SPAN&gt;: &lt;SPAN class="hljs-number"&gt;0&lt;/SPAN&gt;;
        &lt;SPAN class="hljs-attribute"&gt;padding&lt;/SPAN&gt;: &lt;SPAN class="hljs-number"&gt;0&lt;/SPAN&gt;;
        &lt;SPAN class="hljs-attribute"&gt;width&lt;/SPAN&gt;: &lt;SPAN class="hljs-number"&gt;100%&lt;/SPAN&gt;;
        &lt;SPAN class="hljs-attribute"&gt;height&lt;/SPAN&gt;: &lt;SPAN class="hljs-number"&gt;100%&lt;/SPAN&gt;;
      }
    &lt;/SPAN&gt;&lt;SPAN class="hljs-tag"&gt;&amp;lt;/&lt;SPAN class="hljs-name"&gt;style&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class="hljs-tag"&gt;&amp;lt;&lt;SPAN class="hljs-name"&gt;script&lt;/SPAN&gt; &lt;SPAN class="hljs-attr"&gt;src&lt;/SPAN&gt;=&lt;SPAN class="hljs-string"&gt;"https://www.example.com/javascript/api/4.20/init.js"&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN class="hljs-tag"&gt;&amp;lt;/&lt;SPAN class="hljs-name"&gt;script&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class="hljs-tag"&gt;&amp;lt;&lt;SPAN class="hljs-name"&gt;script&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN class="javascript"&gt;      &lt;SPAN class="hljs-built_in"&gt;require&lt;/SPAN&gt;([
        &lt;SPAN class="hljs-string"&gt;"esri/Basemap"&lt;/SPAN&gt;,
        &lt;SPAN class="hljs-string"&gt;"esri/layers/TileLayer"&lt;/SPAN&gt;,
        &lt;SPAN class="hljs-string"&gt;"esri/Map"&lt;/SPAN&gt;,
        &lt;SPAN class="hljs-string"&gt;"esri/views/MapView"&lt;/SPAN&gt;
      ], &lt;SPAN class="hljs-function"&gt;&lt;SPAN class="hljs-keyword"&gt;function&lt;/SPAN&gt; (&lt;SPAN class="hljs-params"&gt;Basemap, TileLayer, &lt;SPAN class="hljs-built_in"&gt;Map&lt;/SPAN&gt;, MapView&lt;/SPAN&gt;)&lt;/SPAN&gt;{
        &lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
        &lt;SPAN class="hljs-comment"&gt;// If you do not have public internet access then use the Basemap class&lt;/SPAN&gt;
        &lt;SPAN class="hljs-comment"&gt;// and point this URL to your own locally accessible cached service.&lt;/SPAN&gt;
        &lt;SPAN class="hljs-comment"&gt;//&lt;/SPAN&gt;
        &lt;SPAN class="hljs-comment"&gt;// Otherwise you can just use one of the named hosted ArcGIS services.&lt;/SPAN&gt;
        &lt;SPAN class="hljs-comment"&gt;// https://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer&lt;/SPAN&gt;
        &lt;SPAN class="hljs-comment"&gt;// --------------------------------------------------------------------&lt;/SPAN&gt;
        &lt;SPAN class="hljs-keyword"&gt;const&lt;/SPAN&gt; layer = &lt;SPAN class="hljs-keyword"&gt;new&lt;/SPAN&gt; TileLayer({
          &lt;SPAN class="hljs-attr"&gt;url&lt;/SPAN&gt;: &lt;SPAN class="hljs-string"&gt;"https://www.example.com/arcgis/rest/services/Folder/Custom_Base_Map/MapServer"&lt;/SPAN&gt;
        });
        &lt;SPAN class="hljs-keyword"&gt;const&lt;/SPAN&gt; customBasemap = &lt;SPAN class="hljs-keyword"&gt;new&lt;/SPAN&gt; Basemap({
          &lt;SPAN class="hljs-attr"&gt;baseLayers&lt;/SPAN&gt;: [layer],
          &lt;SPAN class="hljs-attr"&gt;title&lt;/SPAN&gt;: &lt;SPAN class="hljs-string"&gt;"Custom Basemap"&lt;/SPAN&gt;,
          &lt;SPAN class="hljs-attr"&gt;id&lt;/SPAN&gt;: &lt;SPAN class="hljs-string"&gt;"myBasemap"&lt;/SPAN&gt;
        });
        &lt;SPAN class="hljs-keyword"&gt;const&lt;/SPAN&gt; myMap = &lt;SPAN class="hljs-keyword"&gt;new&lt;/SPAN&gt; &lt;SPAN class="hljs-built_in"&gt;Map&lt;/SPAN&gt;({
          &lt;SPAN class="hljs-attr"&gt;basemap&lt;/SPAN&gt;: customBasemap
        });
        &lt;SPAN class="hljs-keyword"&gt;const&lt;/SPAN&gt; view = &lt;SPAN class="hljs-keyword"&gt;new&lt;/SPAN&gt; MapView({
          &lt;SPAN class="hljs-attr"&gt;center&lt;/SPAN&gt;: [-&lt;SPAN class="hljs-number"&gt;111.87&lt;/SPAN&gt;, &lt;SPAN class="hljs-number"&gt;40.57&lt;/SPAN&gt;], &lt;SPAN class="hljs-comment"&gt;// long, lat&lt;/SPAN&gt;
          &lt;SPAN class="hljs-attr"&gt;container&lt;/SPAN&gt;: &lt;SPAN class="hljs-string"&gt;"viewDiv"&lt;/SPAN&gt;,
          &lt;SPAN class="hljs-attr"&gt;map&lt;/SPAN&gt;: myMap,
          &lt;SPAN class="hljs-attr"&gt;zoom&lt;/SPAN&gt;: &lt;SPAN class="hljs-number"&gt;6&lt;/SPAN&gt;
        });
      });
    &lt;/SPAN&gt;&lt;SPAN class="hljs-tag"&gt;&amp;lt;/&lt;SPAN class="hljs-name"&gt;script&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
  &lt;SPAN class="hljs-tag"&gt;&amp;lt;/&lt;SPAN class="hljs-name"&gt;head&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
  &lt;SPAN class="hljs-tag"&gt;&amp;lt;&lt;SPAN class="hljs-name"&gt;body&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class="hljs-tag"&gt;&amp;lt;&lt;SPAN class="hljs-name"&gt;div&lt;/SPAN&gt; &lt;SPAN class="hljs-attr"&gt;id&lt;/SPAN&gt;=&lt;SPAN class="hljs-string"&gt;"viewDiv"&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN class="hljs-tag"&gt;&amp;lt;/&lt;SPAN class="hljs-name"&gt;div&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
  &lt;SPAN class="hljs-tag"&gt;&amp;lt;/&lt;SPAN class="hljs-name"&gt;body&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
&lt;SPAN class="hljs-tag"&gt;&amp;lt;/&lt;SPAN class="hljs-name"&gt;html&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt;
&lt;/PRE&gt;&lt;H2&gt;Installing Node.js&lt;/H2&gt;&lt;P&gt;For assistance installing Node.js on Windows, see the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Installing Node.js topic&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;in the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Windows: Hosting the ArcGIS API for JavaScript documentation&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;help topic.&lt;/P&gt;</description>
      <pubDate>Thu, 09 Sep 2021 04:42:54 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/how-to-hosted-locally-arcgis-js-api-v4-2/m-p/1096625#M74613</guid>
      <dc:creator>mdonnelly</dc:creator>
      <dc:date>2021-09-09T04:42:54Z</dc:date>
    </item>
    <item>
      <title>Re: how to hosted locally arcgis js api v4.2</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/how-to-hosted-locally-arcgis-js-api-v4-2/m-p/1097132#M74632</link>
      <description>&lt;P&gt;thank you very much！&lt;/P&gt;</description>
      <pubDate>Fri, 10 Sep 2021 09:53:07 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/how-to-hosted-locally-arcgis-js-api-v4-2/m-p/1097132#M74632</guid>
      <dc:creator>zkf</dc:creator>
      <dc:date>2021-09-10T09:53:07Z</dc:date>
    </item>
    <item>
      <title>Re: how to hosted locally arcgis js api v4.2</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/how-to-hosted-locally-arcgis-js-api-v4-2/m-p/1127108#M75628</link>
      <description>&lt;P&gt;Hello sir&lt;/P&gt;&lt;P&gt;&amp;nbsp;I downloaded the API&amp;nbsp; 4.21from this link&amp;nbsp;&lt;A href="https://developers.arcgis.com/downloads/#javascript" target="_blank"&gt;https://developers.arcgis.com/downloads/#javascript&lt;/A&gt;&lt;/P&gt;&lt;P&gt;and I can not find the&amp;nbsp;&lt;SPAN&gt;[HOSTNAME_AND_PATH_TO_JSAPI] in the init.js to replace it with my host location.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 17 Dec 2021 12:13:01 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/how-to-hosted-locally-arcgis-js-api-v4-2/m-p/1127108#M75628</guid>
      <dc:creator>MohammedAlsadaany</dc:creator>
      <dc:date>2021-12-17T12:13:01Z</dc:date>
    </item>
  </channel>
</rss>

