running_apps.html
1 <!DOCTYPE html> 2 <html lang="en" dir="ltr"> 3 <head prefix="og: http://ogp.me/ns#"> 4 <meta charset="utf-8"> 5 <title>Running apps | Embark</title> 6 <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"> 7 <meta name="viewport" content="width=device-width, initial-scale=1"> 8 <!-- Canonical links --> 9 <link rel="canonical" href="https://framework.embarklabs.io/docs/running_apps.html"> 10 <!-- Alternative links --> 11 12 13 <!-- Icon --> 14 <meta name="msapplication-TileColor" content="#080E1A"> 15 <link rel="icon" type="image/png" href="/assets/images/favicon-16.png" sizes="16x16" /> 16 <link rel="icon" type="image/png" href="/assets/images/favicon-32.png" sizes="32x32" /> 17 18 <link rel="apple-touch-icon" sizes="76x76" href="/assets/images/apple-touch-icon-60x60-precomposed.png"> 19 <link rel="apple-touch-icon" sizes="76x76" href="/assets/images/apple-touch-icon-76x76-precomposed.png"> 20 <link rel="apple-touch-icon" sizes="120x120" href="/assets/images/apple-touch-icon-120x120-precomposed.png"> 21 <link rel="apple-touch-icon" sizes="152x152" href="/assets/images/apple-touch-icon-152x152-precomposed.png"> 22 <link rel="apple-touch-icon" sizes="180x180" href="/assets/images/apple-touch-icon-precomposed.png"> 23 <link rel="apple-touch-icon" href="/assets/images/apple-touch-icon-precomposed.png"> 24 <!-- CSS --> 25 26 <link rel="stylesheet" href="/css/embark.css"> 27 28 <!-- endbuild --> 29 30 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"> 31 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" /> 32 33 <!-- RSS --> 34 <link rel="alternate" href="/atom.xml" title="Embark"> 35 <meta property="og:image" content="/img/share.png?v=0.0.5" /> 36 <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.4/styles/dracula.min.css"> 37 38 <script async defer src="https://buttons.github.io/buttons.js"></script> 39 40 41 <script> 42 !function(root, factory) { 43 "function" == typeof define && define.amd ? // AMD. Register as an anonymous module unless amdModuleId is set 44 define([], function() { 45 return root.svg4everybody = factory(); 46 }) : "object" == typeof module && module.exports ? // Node. Does not work with strict CommonJS, but 47 // only CommonJS-like environments that support module.exports, 48 // like Node. 49 module.exports = factory() : root.svg4everybody = factory(); 50 }(this, function() { 51 /*! svg4everybody v2.1.9 | github.com/jonathantneal/svg4everybody */ 52 function embed(parent, svg, target) { 53 // if the target exists 54 if (target) { 55 // create a document fragment to hold the contents of the target 56 var fragment = document.createDocumentFragment(), viewBox = !svg.hasAttribute("viewBox") && target.getAttribute("viewBox"); 57 // conditionally set the viewBox on the svg 58 viewBox && svg.setAttribute("viewBox", viewBox); 59 // copy the contents of the clone into the fragment 60 for (// clone the target 61 var clone = target.cloneNode(!0); clone.childNodes.length; ) { 62 fragment.appendChild(clone.firstChild); 63 } 64 // append the fragment into the svg 65 parent.appendChild(fragment); 66 } 67 } 68 function loadreadystatechange(xhr) { 69 // listen to changes in the request 70 xhr.onreadystatechange = function() { 71 // if the request is ready 72 if (4 === xhr.readyState) { 73 // get the cached html document 74 var cachedDocument = xhr._cachedDocument; 75 // ensure the cached html document based on the xhr response 76 cachedDocument || (cachedDocument = xhr._cachedDocument = document.implementation.createHTMLDocument(""), 77 cachedDocument.body.innerHTML = xhr.responseText, xhr._cachedTarget = {}), // clear the xhr embeds list and embed each item 78 xhr._embeds.splice(0).map(function(item) { 79 // get the cached target 80 var target = xhr._cachedTarget[item.id]; 81 // ensure the cached target 82 target || (target = xhr._cachedTarget[item.id] = cachedDocument.getElementById(item.id)), 83 // embed the target into the svg 84 embed(item.parent, item.svg, target); 85 }); 86 } 87 }, // test the ready state change immediately 88 xhr.onreadystatechange(); 89 } 90 function svg4everybody(rawopts) { 91 function oninterval() { 92 // while the index exists in the live <use> collection 93 for (// get the cached <use> index 94 var index = 0; index < uses.length; ) { 95 // get the current <use> 96 var use = uses[index], parent = use.parentNode, svg = getSVGAncestor(parent), src = use.getAttribute("xlink:href") || use.getAttribute("href"); 97 if (!src && opts.attributeName && (src = use.getAttribute(opts.attributeName)), 98 svg && src) { 99 if (polyfill) { 100 if (!opts.validate || opts.validate(src, svg, use)) { 101 // remove the <use> element 102 parent.removeChild(use); 103 // parse the src and get the url and id 104 var srcSplit = src.split("#"), url = srcSplit.shift(), id = srcSplit.join("#"); 105 // if the link is external 106 if (url.length) { 107 // get the cached xhr request 108 var xhr = requests[url]; 109 // ensure the xhr request exists 110 xhr || (xhr = requests[url] = new XMLHttpRequest(), xhr.open("GET", url), xhr.send(), 111 xhr._embeds = []), // add the svg and id as an item to the xhr embeds list 112 xhr._embeds.push({ 113 parent: parent, 114 svg: svg, 115 id: id 116 }), // prepare the xhr ready state change event 117 loadreadystatechange(xhr); 118 } else { 119 // embed the local id into the svg 120 embed(parent, svg, document.getElementById(id)); 121 } 122 } else { 123 // increase the index when the previous value was not "valid" 124 ++index, ++numberOfSvgUseElementsToBypass; 125 } 126 } 127 } else { 128 // increase the index when the previous value was not "valid" 129 ++index; 130 } 131 } 132 // continue the interval 133 (!uses.length || uses.length - numberOfSvgUseElementsToBypass > 0) && requestAnimationFrame(oninterval, 67); 134 } 135 var polyfill, opts = Object(rawopts), newerIEUA = /\bTrident\/[567]\b|\bMSIE (?:9|10)\.0\b/, webkitUA = /\bAppleWebKit\/(\d+)\b/, olderEdgeUA = /\bEdge\/12\.(\d+)\b/, edgeUA = /\bEdge\/.(\d+)\b/, inIframe = window.top !== window.self; 136 polyfill = "polyfill" in opts ? opts.polyfill : newerIEUA.test(navigator.userAgent) || (navigator.userAgent.match(olderEdgeUA) || [])[1] < 10547 || (navigator.userAgent.match(webkitUA) || [])[1] < 537 || edgeUA.test(navigator.userAgent) && inIframe; 137 // create xhr requests object 138 var requests = {}, requestAnimationFrame = window.requestAnimationFrame || setTimeout, uses = document.getElementsByTagName("use"), numberOfSvgUseElementsToBypass = 0; 139 // conditionally start the interval if the polyfill is active 140 polyfill && oninterval(); 141 } 142 function getSVGAncestor(node) { 143 for (var svg = node; "svg" !== svg.nodeName.toLowerCase() && (svg = svg.parentNode); ) {} 144 return svg; 145 } 146 return svg4everybody; 147 }); 148 149 svg4everybody(); 150 </script> 151 </head> 152 153 <body> 154 <header role="banner" class="c-header c-header--compact"> 155 <span class="c-header__background"></span> 156 <div class="o-container c-header__content"> 157 <div class="c-header__top"> 158 <a href="/" title="Embark" class="c-logo c-logo--negative">Embark</a> 159 <nav role="navigation" class="c-navigation"> 160 <div class="c-navigation__header"> 161 <a href="/" title="Embark" class="c-logo">Embark</a> 162 <button class="c-navigation__close u-text-light" title="Close menu"> 163 <svg class="c-icon c-icon--xs"><use xlink:href="/../assets/icons/symbols.svg#icon-close"></use></svg> 164 </button> 165 </div> 166 <div class="c-navigation__body"> 167 <ul class="c-navigation__list"> 168 <li class="c-navigation__item"> 169 <a href="/docs/quick_start.html" class="c-navigation__anchor " title="Quick Start">Quick Start</a> 170 </li> 171 <li class="c-navigation__item"> 172 <a href="/docs" class="c-navigation__anchor is-active" title="Learn">Learn</a> 173 </li> 174 <li class="c-navigation__item"> 175 <a href="/plugins" class="c-navigation__anchor " title="Plugins">Plugins</a> 176 </li> 177 <li class="c-navigation__item"> 178 <a href="/community" class="c-navigation__anchor " title="Community">Community</a> 179 </li> 180 <li class="c-navigation__item"> 181 <a href="https://blog.embarklabs.io" target="_blank" rel="noopener" class="c-navigation__anchor " title="Blog">Blog</a> 182 </li> 183 </ul> 184 </div> 185 </nav> 186 <div class="o-flex o-flex-center"> 187 <form action="" class="o-flex__item u-hidden-until-large"> 188 <input type="search" placeholder="Search" id="search-input"> 189 </form> 190 <div class="o-flex__item"> 191 <ul class="o-flex o-flex-center"> 192 <li class="o-flex__item"> 193 <a href="https://github.com/embarklabs/embark" title="Github" target="_blank" class="u-link-ghost"> 194 <svg class="c-icon"><use xlink:href="/../assets/icons/symbols.svg#icon-github"></use></svg> 195 </a> 196 </li> 197 <li class="o-flex__item"> 198 <a href="https://twitter.com/EmbarkProject" title="Twitter" target="_blank"> 199 <svg class="c-icon"><use xlink:href="/../assets/icons/symbols.svg#icon-twitter"></use></svg> 200 </a> 201 </li> 202 <li class="o-flex__item u-hidden-large-up"> 203 <button type="button"class="c-navigation__trigger u-link-ghost" title="Open menu"> 204 <svg class="c-icon"><use xlink:href="/../assets/icons/symbols.svg#icon-navigation-menu"></use></svg> 205 </button> 206 </li> 207 </ul> 208 </div> 209 </div> 210 </div> 211 <div class="c-quick-search o-distance-m u-hidden-large-up"> 212 <input type="search" id="inp-search" placeholder="Search"> 213 </div> 214 <div class="c-header__body"> 215 <h1 class="c-title u-text-ghost">Documentation</h1> 216 217 218 219 220 221 </div> 222 </div> 223 </header> 224 225 226 <main role="main"> 227 <section class="o-guided-content o-distance"> 228 <div class="o-guided-content__wrapper"> 229 <button title="Open docs menu" id="guides-trigger" class="c-button c-button--minion u-hidden-large-up"> 230 <svg class="c-icon c-icon--xs"><use xlink:href="/../../assets/icons/symbols.svg#icon-navigation-menu"></use></svg> 231 <span>Guides</span> 232 </button> 233 <div class="c-guide o-guided-content__guide" id="guide-navigation"> 234 <div class="c-guide__header u-hidden-large-up"> 235 <a href="" title="Guides"> 236 Guides 237 </a> 238 <button type="button" title="Close menu" id="guides-close"> 239 <svg class="c-icon c-icon--xs"><use xlink:href="/../../assets/icons/symbols.svg#icon-close"></use></svg> 240 </button> 241 </div> 242 <div class="c-guide__body"> 243 <nav role="navigation"> 244 245 <div class=""> 246 <h3 class="c-category-title">Getting Started</h3> 247 <ul class="o-list-bare"> 248 249 <li class="o-list-bare__item"> 250 <a href="/docs/overview.html" title="Overview" class="u-link-uniform ">Overview</a> 251 <!-- <div class="o-distance-m"> 252 <ul class="o-list-bare c-navigation__subnav"> 253 <li class="o-list-bare__item"> 254 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 255 </li> 256 </ul> 257 </div> --> 258 </li> 259 260 <li class="o-list-bare__item"> 261 <a href="/docs/installation.html" title="Installation" class="u-link-uniform ">Installation</a> 262 <!-- <div class="o-distance-m"> 263 <ul class="o-list-bare c-navigation__subnav"> 264 <li class="o-list-bare__item"> 265 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 266 </li> 267 </ul> 268 </div> --> 269 </li> 270 271 <li class="o-list-bare__item"> 272 <a href="/docs/faq.html" title="FAQ" class="u-link-uniform ">FAQ</a> 273 <!-- <div class="o-distance-m"> 274 <ul class="o-list-bare c-navigation__subnav"> 275 <li class="o-list-bare__item"> 276 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 277 </li> 278 </ul> 279 </div> --> 280 </li> 281 282 </ul> 283 284 285 <div class="o-distance-xl"> 286 <h3 class="c-category-title">General Usage</h3> 287 <ul class="o-list-bare"> 288 289 <li class="o-list-bare__item"> 290 <a href="/docs/create_project.html" title="Creating apps" class="u-link-uniform ">Creating apps</a> 291 <!-- <div class="o-distance-m"> 292 <ul class="o-list-bare c-navigation__subnav"> 293 <li class="o-list-bare__item"> 294 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 295 </li> 296 </ul> 297 </div> --> 298 </li> 299 300 <li class="o-list-bare__item"> 301 <a href="/docs/structure.html" title="App structure" class="u-link-uniform ">App structure</a> 302 <!-- <div class="o-distance-m"> 303 <ul class="o-list-bare c-navigation__subnav"> 304 <li class="o-list-bare__item"> 305 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 306 </li> 307 </ul> 308 </div> --> 309 </li> 310 311 <li class="o-list-bare__item"> 312 <a href="/docs/running_apps.html" title="Running apps" class="u-link-uniform is-active">Running apps</a> 313 <!-- <div class="o-distance-m"> 314 <ul class="o-list-bare c-navigation__subnav"> 315 <li class="o-list-bare__item"> 316 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 317 </li> 318 </ul> 319 </div> --> 320 </li> 321 322 <li class="o-list-bare__item"> 323 <a href="/docs/dashboard.html" title="Using the dashboard" class="u-link-uniform ">Using the dashboard</a> 324 <!-- <div class="o-distance-m"> 325 <ul class="o-list-bare c-navigation__subnav"> 326 <li class="o-list-bare__item"> 327 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 328 </li> 329 </ul> 330 </div> --> 331 </li> 332 333 <li class="o-list-bare__item"> 334 <a href="/docs/using_the_console.html" title="Using the console" class="u-link-uniform ">Using the console</a> 335 <!-- <div class="o-distance-m"> 336 <ul class="o-list-bare c-navigation__subnav"> 337 <li class="o-list-bare__item"> 338 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 339 </li> 340 </ul> 341 </div> --> 342 </li> 343 344 <li class="o-list-bare__item"> 345 <a href="/docs/environments.html" title="Environments" class="u-link-uniform ">Environments</a> 346 <!-- <div class="o-distance-m"> 347 <ul class="o-list-bare c-navigation__subnav"> 348 <li class="o-list-bare__item"> 349 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 350 </li> 351 </ul> 352 </div> --> 353 </li> 354 355 <li class="o-list-bare__item"> 356 <a href="/docs/configuration.html" title="Configuration" class="u-link-uniform ">Configuration</a> 357 <!-- <div class="o-distance-m"> 358 <ul class="o-list-bare c-navigation__subnav"> 359 <li class="o-list-bare__item"> 360 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 361 </li> 362 </ul> 363 </div> --> 364 </li> 365 366 <li class="o-list-bare__item"> 367 <a href="/docs/pipeline_and_webpack.html" title="Building & Compiling" class="u-link-uniform ">Building & Compiling</a> 368 <!-- <div class="o-distance-m"> 369 <ul class="o-list-bare c-navigation__subnav"> 370 <li class="o-list-bare__item"> 371 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 372 </li> 373 </ul> 374 </div> --> 375 </li> 376 377 <li class="o-list-bare__item"> 378 <a href="/docs/executing_scripts.html" title="Executing Scripts" class="u-link-uniform ">Executing Scripts</a> 379 <!-- <div class="o-distance-m"> 380 <ul class="o-list-bare c-navigation__subnav"> 381 <li class="o-list-bare__item"> 382 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 383 </li> 384 </ul> 385 </div> --> 386 </li> 387 388 <li class="o-list-bare__item"> 389 <a href="/docs/javascript_usage.html" title="Using EmbarkJS" class="u-link-uniform ">Using EmbarkJS</a> 390 <!-- <div class="o-distance-m"> 391 <ul class="o-list-bare c-navigation__subnav"> 392 <li class="o-list-bare__item"> 393 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 394 </li> 395 </ul> 396 </div> --> 397 </li> 398 399 </ul> 400 </div> 401 402 <div class="o-distance-xl"> 403 <h3 class="c-category-title">Smart Contract Development</h3> 404 <ul class="o-list-bare"> 405 406 <li class="o-list-bare__item"> 407 <a href="/docs/contracts_configuration.html" title="Configuration" class="u-link-uniform ">Configuration</a> 408 <!-- <div class="o-distance-m"> 409 <ul class="o-list-bare c-navigation__subnav"> 410 <li class="o-list-bare__item"> 411 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 412 </li> 413 </ul> 414 </div> --> 415 </li> 416 417 <li class="o-list-bare__item"> 418 <a href="/docs/contracts_deployment.html" title="Accounts & Deployment" class="u-link-uniform ">Accounts & Deployment</a> 419 <!-- <div class="o-distance-m"> 420 <ul class="o-list-bare c-navigation__subnav"> 421 <li class="o-list-bare__item"> 422 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 423 </li> 424 </ul> 425 </div> --> 426 </li> 427 428 <li class="o-list-bare__item"> 429 <a href="/docs/contracts_imports.html" title="Special Imports" class="u-link-uniform ">Special Imports</a> 430 <!-- <div class="o-distance-m"> 431 <ul class="o-list-bare c-navigation__subnav"> 432 <li class="o-list-bare__item"> 433 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 434 </li> 435 </ul> 436 </div> --> 437 </li> 438 439 <li class="o-list-bare__item"> 440 <a href="/docs/contracts_testing.html" title="Testing" class="u-link-uniform ">Testing</a> 441 <!-- <div class="o-distance-m"> 442 <ul class="o-list-bare c-navigation__subnav"> 443 <li class="o-list-bare__item"> 444 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 445 </li> 446 </ul> 447 </div> --> 448 </li> 449 450 <li class="o-list-bare__item"> 451 <a href="/docs/contracts_javascript.html" title="Smart Contracts in JavaScript" class="u-link-uniform ">Smart Contracts in JavaScript</a> 452 <!-- <div class="o-distance-m"> 453 <ul class="o-list-bare c-navigation__subnav"> 454 <li class="o-list-bare__item"> 455 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 456 </li> 457 </ul> 458 </div> --> 459 </li> 460 461 </ul> 462 </div> 463 464 <div class="o-distance-xl"> 465 <h3 class="c-category-title">Blockchain Client</h3> 466 <ul class="o-list-bare"> 467 468 <li class="o-list-bare__item"> 469 <a href="/docs/blockchain_configuration.html" title="Configuration" class="u-link-uniform ">Configuration</a> 470 <!-- <div class="o-distance-m"> 471 <ul class="o-list-bare c-navigation__subnav"> 472 <li class="o-list-bare__item"> 473 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 474 </li> 475 </ul> 476 </div> --> 477 </li> 478 479 <li class="o-list-bare__item"> 480 <a href="/docs/blockchain_accounts_configuration.html" title="Managing Accounts" class="u-link-uniform ">Managing Accounts</a> 481 <!-- <div class="o-distance-m"> 482 <ul class="o-list-bare c-navigation__subnav"> 483 <li class="o-list-bare__item"> 484 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 485 </li> 486 </ul> 487 </div> --> 488 </li> 489 490 </ul> 491 </div> 492 493 <div class="o-distance-xl"> 494 <h3 class="c-category-title">Storage (IPFS/Swarm)</h3> 495 <ul class="o-list-bare"> 496 497 <li class="o-list-bare__item"> 498 <a href="/docs/storage_configuration.html" title="Configuration" class="u-link-uniform ">Configuration</a> 499 <!-- <div class="o-distance-m"> 500 <ul class="o-list-bare c-navigation__subnav"> 501 <li class="o-list-bare__item"> 502 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 503 </li> 504 </ul> 505 </div> --> 506 </li> 507 508 <li class="o-list-bare__item"> 509 <a href="/docs/storage_deployment.html" title="Deploying apps" class="u-link-uniform ">Deploying apps</a> 510 <!-- <div class="o-distance-m"> 511 <ul class="o-list-bare c-navigation__subnav"> 512 <li class="o-list-bare__item"> 513 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 514 </li> 515 </ul> 516 </div> --> 517 </li> 518 519 <li class="o-list-bare__item"> 520 <a href="/docs/storage_javascript.html" title="Storage APIs in JavaScript" class="u-link-uniform ">Storage APIs in JavaScript</a> 521 <!-- <div class="o-distance-m"> 522 <ul class="o-list-bare c-navigation__subnav"> 523 <li class="o-list-bare__item"> 524 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 525 </li> 526 </ul> 527 </div> --> 528 </li> 529 530 </ul> 531 </div> 532 533 <div class="o-distance-xl"> 534 <h3 class="c-category-title">Messages (Whisper)</h3> 535 <ul class="o-list-bare"> 536 537 <li class="o-list-bare__item"> 538 <a href="/docs/messages_configuration.html" title="Configuration" class="u-link-uniform ">Configuration</a> 539 <!-- <div class="o-distance-m"> 540 <ul class="o-list-bare c-navigation__subnav"> 541 <li class="o-list-bare__item"> 542 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 543 </li> 544 </ul> 545 </div> --> 546 </li> 547 548 <li class="o-list-bare__item"> 549 <a href="/docs/messages_javascript.html" title="Messages in JavaScript" class="u-link-uniform ">Messages in JavaScript</a> 550 <!-- <div class="o-distance-m"> 551 <ul class="o-list-bare c-navigation__subnav"> 552 <li class="o-list-bare__item"> 553 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 554 </li> 555 </ul> 556 </div> --> 557 </li> 558 559 </ul> 560 </div> 561 562 <div class="o-distance-xl"> 563 <h3 class="c-category-title">Naming Systems (ENS)</h3> 564 <ul class="o-list-bare"> 565 566 <li class="o-list-bare__item"> 567 <a href="/docs/naming_configuration.html" title="Configuration" class="u-link-uniform ">Configuration</a> 568 <!-- <div class="o-distance-m"> 569 <ul class="o-list-bare c-navigation__subnav"> 570 <li class="o-list-bare__item"> 571 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 572 </li> 573 </ul> 574 </div> --> 575 </li> 576 577 <li class="o-list-bare__item"> 578 <a href="/docs/naming_javascript.html" title="Naming Systems in JavaScript" class="u-link-uniform ">Naming Systems in JavaScript</a> 579 <!-- <div class="o-distance-m"> 580 <ul class="o-list-bare c-navigation__subnav"> 581 <li class="o-list-bare__item"> 582 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 583 </li> 584 </ul> 585 </div> --> 586 </li> 587 588 </ul> 589 </div> 590 591 <div class="o-distance-xl"> 592 <h3 class="c-category-title">Plugins</h3> 593 <ul class="o-list-bare"> 594 595 <li class="o-list-bare__item"> 596 <a href="/docs/installing_plugins.html" title="Installing plugins" class="u-link-uniform ">Installing plugins</a> 597 <!-- <div class="o-distance-m"> 598 <ul class="o-list-bare c-navigation__subnav"> 599 <li class="o-list-bare__item"> 600 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 601 </li> 602 </ul> 603 </div> --> 604 </li> 605 606 <li class="o-list-bare__item"> 607 <a href="/docs/creating_plugins.html" title="Creating plugins" class="u-link-uniform ">Creating plugins</a> 608 <!-- <div class="o-distance-m"> 609 <ul class="o-list-bare c-navigation__subnav"> 610 <li class="o-list-bare__item"> 611 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 612 </li> 613 </ul> 614 </div> --> 615 </li> 616 617 <li class="o-list-bare__item"> 618 <a href="/docs/plugin_reference.html" title="Plugin APIs" class="u-link-uniform ">Plugin APIs</a> 619 <!-- <div class="o-distance-m"> 620 <ul class="o-list-bare c-navigation__subnav"> 621 <li class="o-list-bare__item"> 622 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 623 </li> 624 </ul> 625 </div> --> 626 </li> 627 628 </ul> 629 </div> 630 631 <div class="o-distance-xl"> 632 <h3 class="c-category-title">Cockpit Guides</h3> 633 <ul class="o-list-bare"> 634 635 <li class="o-list-bare__item"> 636 <a href="/docs/cockpit_introduction.html" title="Introduction" class="u-link-uniform ">Introduction</a> 637 <!-- <div class="o-distance-m"> 638 <ul class="o-list-bare c-navigation__subnav"> 639 <li class="o-list-bare__item"> 640 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 641 </li> 642 </ul> 643 </div> --> 644 </li> 645 646 <li class="o-list-bare__item"> 647 <a href="/docs/cockpit_dashboard.html" title="Using the Dashboard" class="u-link-uniform ">Using the Dashboard</a> 648 <!-- <div class="o-distance-m"> 649 <ul class="o-list-bare c-navigation__subnav"> 650 <li class="o-list-bare__item"> 651 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 652 </li> 653 </ul> 654 </div> --> 655 </li> 656 657 <li class="o-list-bare__item"> 658 <a href="/docs/cockpit_deployment.html" title="Deployment" class="u-link-uniform ">Deployment</a> 659 <!-- <div class="o-distance-m"> 660 <ul class="o-list-bare c-navigation__subnav"> 661 <li class="o-list-bare__item"> 662 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 663 </li> 664 </ul> 665 </div> --> 666 </li> 667 668 <li class="o-list-bare__item"> 669 <a href="/docs/cockpit_explorer.html" title="Explorer View" class="u-link-uniform ">Explorer View</a> 670 <!-- <div class="o-distance-m"> 671 <ul class="o-list-bare c-navigation__subnav"> 672 <li class="o-list-bare__item"> 673 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 674 </li> 675 </ul> 676 </div> --> 677 </li> 678 679 <li class="o-list-bare__item"> 680 <a href="/docs/cockpit_editor.html" title="Code Editor" class="u-link-uniform ">Code Editor</a> 681 <!-- <div class="o-distance-m"> 682 <ul class="o-list-bare c-navigation__subnav"> 683 <li class="o-list-bare__item"> 684 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 685 </li> 686 </ul> 687 </div> --> 688 </li> 689 690 <li class="o-list-bare__item"> 691 <a href="/docs/cockpit_debugger.html" title="Using the Debugger" class="u-link-uniform ">Using the Debugger</a> 692 <!-- <div class="o-distance-m"> 693 <ul class="o-list-bare c-navigation__subnav"> 694 <li class="o-list-bare__item"> 695 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 696 </li> 697 </ul> 698 </div> --> 699 </li> 700 701 </ul> 702 </div> 703 704 <div class="o-distance-xl"> 705 <h3 class="c-category-title">Reference</h3> 706 <ul class="o-list-bare"> 707 708 <li class="o-list-bare__item"> 709 <a href="/docs/embark_commands.html" title="CLI Commands" class="u-link-uniform ">CLI Commands</a> 710 <!-- <div class="o-distance-m"> 711 <ul class="o-list-bare c-navigation__subnav"> 712 <li class="o-list-bare__item"> 713 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 714 </li> 715 </ul> 716 </div> --> 717 </li> 718 719 </ul> 720 </div> 721 722 <div class="o-distance-xl"> 723 <h3 class="c-category-title">Miscellaneous</h3> 724 <ul class="o-list-bare"> 725 726 <li class="o-list-bare__item"> 727 <a href="/docs/migrating_from_3.x.html" title="Migrating from Embark 3.x" class="u-link-uniform ">Migrating from Embark 3.x</a> 728 <!-- <div class="o-distance-m"> 729 <ul class="o-list-bare c-navigation__subnav"> 730 <li class="o-list-bare__item"> 731 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 732 </li> 733 </ul> 734 </div> --> 735 </li> 736 737 <li class="o-list-bare__item"> 738 <a href="/docs/troubleshooting.html" title="Troubleshooting" class="u-link-uniform ">Troubleshooting</a> 739 <!-- <div class="o-distance-m"> 740 <ul class="o-list-bare c-navigation__subnav"> 741 <li class="o-list-bare__item"> 742 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 743 </li> 744 </ul> 745 </div> --> 746 </li> 747 748 <li class="o-list-bare__item"> 749 <a href="/docs/contributing.html" title="Contributing" class="u-link-uniform ">Contributing</a> 750 <!-- <div class="o-distance-m"> 751 <ul class="o-list-bare c-navigation__subnav"> 752 <li class="o-list-bare__item"> 753 <a href="#" title="What is Embark?" class="u-link-uniform">What is Embark?</a> 754 </li> 755 </ul> 756 </div> --> 757 </li> 758 759 </ul> 760 </div> 761 762 </nav> 763 </div> 764 </div> 765 <div class="o-guided-content__content"> 766 <p class="c-meta">Last updated: January 19th 2020 767 (<a href="https://github.com/embarklabs/embark/edit/master/site/source/docs/running_apps.md" target="_blank"> 768 Improve this guide <svg class="c-icon c-icon--xs"><use xlink:href="/../../assets/icons/symbols.svg#icon-pen-write-paper"></use></svg> 769 </a>) 770 </p> 771 <div class="o-standard-page"> 772 <h1>Running apps</h1> 773 <p>While running Embark applications is pretty straight forward, there are some additional options we can take advantage of to change how our application is run. Whether we want Embark to automatically open a browser, open its dashboard or even make our app connect to different blockchains. This guide explores how this is done.</p> 774 <h2 id="Using-the-run-command"><a href="#Using-the-run-command" class="headerlink" title="Using the run command"></a>Using the <code>run</code> command</h2><p>If you’ve read the <a href="quick_start.html">quickstart</a> you’re already aware that running an application is done by simply executing <code>embark run</code> within your project:</p> 775 <figure class="highlight plain"><table><tr><td class="code"><pre><span class="line">$ embark run</span><br></pre></td></tr></table></figure> 776 777 <p>By default, this will make Embark do a couple of things:</p> 778 <ul> 779 <li>It initializes Embark</li> 780 <li>It starts the dashboard</li> 781 <li>It loads plugins</li> 782 <li>It spins up a blockchain and IPFS client, a web server and other necessary services</li> 783 <li>It compiles and deploys your app</li> 784 <li>It monitors running processes and recompiles and redeploys your app if needed</li> 785 <li>It starts <a href="/docs/cockpit_introduction.html">Cockpit</a></li> 786 </ul> 787 <p>Most of the time, using the <code>run</code> command is all what we need to work on our Embark project, but as mentioned above, we can take a bit more control over running our application.</p> 788 <h2 id="Running-an-app-without-the-dashboard"><a href="#Running-an-app-without-the-dashboard" class="headerlink" title="Running an app without the dashboard"></a>Running an app without the dashboard</h2><p>While the dashboard gives us a great overview of all the processes and services that Embark manages for us, it’s not required to start it every single time along with compiling and deploying our app. If we don’t need the dashboard, we can prevent Embark from starting it by using the <code>--nodashboard</code> option:</p> 789 <figure class="highlight plain"><table><tr><td class="code"><pre><span class="line">$ embark run --nodashboard</span><br></pre></td></tr></table></figure> 790 791 <p>When running the command with <code>--nodashboard</code>, Embark will fallback to only use standard log outputs, which are the same that we get in the <strong>Logs</strong> panel within the dashboard.</p> 792 <h2 id="Running-an-app-without-opening-a-browser"><a href="#Running-an-app-without-opening-a-browser" class="headerlink" title="Running an app without opening a browser"></a>Running an app without opening a browser</h2><p>In order to get up and running as fast as possible, Embark also takes care of opening a new browser window that connects to the web server to load our application’s client. While this is quite convenient, sometimes we don’t need a browser window to work on our app. This is the case when we’re for example only interested in developing Smart Contracts, without creating a front-end.</p> 793 <p>If we don’t want Embark to open a browser for us, all we have to do is using the <code>--nobrowser</code> option like this:</p> 794 <figure class="highlight plain"><table><tr><td class="code"><pre><span class="line">$ embark run --nobrowser</span><br></pre></td></tr></table></figure> 795 796 797 <h2 id="Running-an-app-without-starting-a-web-server"><a href="#Running-an-app-without-starting-a-web-server" class="headerlink" title="Running an app without starting a web server"></a>Running an app without starting a web server</h2><p>If we aren’t interested in Embark starting a web server in the first place, we can easily turn it off by using the <code>--noserver</code> option:</p> 798 <figure class="highlight plain"><table><tr><td class="code"><pre><span class="line">$ embark run --noserver</span><br></pre></td></tr></table></figure> 799 800 <h2 id="Running-apps-in-different-modes"><a href="#Running-apps-in-different-modes" class="headerlink" title="Running apps in different modes"></a>Running apps in different modes</h2><p>Embark comes with different “modes” when building applications. <code>embark run</code> uses the <code>development</code> mode by default. However, this can be overwritten using the <code>--pipeline</code> option. The following command run our application in <code>production</code> mode.</p> 801 <figure class="highlight plain"><table><tr><td class="code"><pre><span class="line">$ embark run --pipeline production</span><br></pre></td></tr></table></figure> 802 803 <p>For more information about modes, head over to our guide on <a href="pipeline_and_webpack.html">building apps</a>.</p> 804 <h2 id="Switching-environments"><a href="#Switching-environments" class="headerlink" title="Switching environments"></a>Switching environments</h2><p>Embark allows for configuring different environments to run our app against. This can be useful if we want to deploy our app to test networks or even private networks. In order to run our application in a specified environment, we first have to add a dedicated configuration to our project’s <code>blockchain.js</code> file. </p> 805 <p>Depending on how you initialized your application, it may have already multiple environments configured. Here’s what a sample test network environment could look like:</p> 806 <figure class="highlight plain"><table><tr><td class="code"><pre><span class="line">// config/blockchain.js</span><br><span class="line"></span><br><span class="line">modules.exports = {</span><br><span class="line"> ...</span><br><span class="line"> testnet: {</span><br><span class="line"> networkType: "testnet",</span><br><span class="line"> syncMode: "light",</span><br><span class="line"> account: {</span><br><span class="line"> password: "config/testnet/password"</span><br><span class="line"> }</span><br><span class="line"> },</span><br><span class="line"> ...</span><br><span class="line">}</span><br></pre></td></tr></table></figure> 807 808 <p>For more information on configuring your Embark application, head over to the <a href="configuration.html">general configuration guide</a>.</p> 809 <p>Running an application in a different environment is just a matter of specifying the environment’s name as part of the run command:</p> 810 <figure class="highlight plain"><table><tr><td class="code"><pre><span class="line">$ embark run [environment]</span><br></pre></td></tr></table></figure> 811 812 <p>So in case we want to run our app against the test network environment described above, this could be achieved by running:</p> 813 <figure class="highlight plain"><table><tr><td class="code"><pre><span class="line">$ embark run testnet</span><br></pre></td></tr></table></figure> 814 815 <h2 id="Starting-a-blockchain-separately"><a href="#Starting-a-blockchain-separately" class="headerlink" title="Starting a blockchain separately"></a>Starting a blockchain separately</h2><p>Sometimes we might want to have more control over the different processes involved when running our application with Embark. One of those things is to spin up a blockchain first and then have <code>embark run</code> connect to it. This enables us to stop and restart the blockchain process, without stopping Embark from doing its work.</p> 816 <p>Embark comes with a <code>blockchain</code> command that does exactly that:</p> 817 <figure class="highlight plain"><table><tr><td class="code"><pre><span class="line">$ embark blockchain</span><br></pre></td></tr></table></figure> 818 819 <p>When this is executed before Embark is run within a project, the run command will skip spinning up a blockchain node itself and connect to the existing process. Similar to the <code>run</code> command, the <code>blockchain</code> command also allows to specify an environment:</p> 820 <figure class="highlight plain"><table><tr><td class="code"><pre><span class="line">$ embark blockchain testnet</span><br></pre></td></tr></table></figure> 821 822 <p>By default Embark blockchain will mine a minimum amount of ether and will only mine when new transactions come in.</p> 823 <h2 id="Using-the-blockchain-simulator"><a href="#Using-the-blockchain-simulator" class="headerlink" title="Using the blockchain simulator"></a>Using the blockchain simulator</h2><p>Another feature of Embark is to start a <strong>simulated</strong> blockchain. This can be useful for testing purposes as there’s no need to wait for transactions to be mined. You might have heard of <a href="https://truffleframework.com/docs/ganache/quickstart" target="_blank" rel="noopener">Ganache CLI</a>, which is a great project that implements such a simulated blockchain.</p> 824 <p>Embark integrates perfectly with this existing tool chain. To start a simulated blockchain, all we have do is to use the <code>simulator</code> command:</p> 825 <figure class="highlight plain"><table><tr><td class="code"><pre><span class="line">$ embark simulator</span><br></pre></td></tr></table></figure> 826 827 <h2 id="Resetting-apps"><a href="#Resetting-apps" class="headerlink" title="Resetting apps"></a>Resetting apps</h2><p>Sometimes we want to develop and test behaviours that are related to the deployment of our application. For example, we might want to use some of Embark’s powerful <a href="/docs/contracts_configuration.html#Deployment-hooks">deployment hooks</a> to initialize one of our Smart Contracts based on the deployment of another Smart Contract.</p> 828 <p>To test this, we’ll have to redeploy our Smart Contracts. However once a Smart Contract is deployed, Embark keeps track of it and won’t try to redeploy the same Smart Contract again.</p> 829 <p>One way to deal with this is to use the <a href="/docs/contracts_configuration.html#Deployment-tracking">deployment tracking</a> configuration. Another way is to use Embark’s <code>reset</code> command which will remove some files and data that Embark stores in the project’s <code>.embark</code> folder.</p> 830 <p>We can reset our project by running the following command:</p> 831 <figure class="highlight plain"><table><tr><td class="code"><pre><span class="line">$ embark reset</span><br></pre></td></tr></table></figure> 832 833 <p>It’s possible to configure what files Embark is going to remove when doing a reset. Check out <a href="/docs/configuration.html#Configuring-Embark’s-reset-command">this guide</a> to learn more.</p> 834 835 </div> 836 <div class="o-container-medium o-distance-l"> 837 <div class="o-flex o-flex-space-between"> 838 839 <div class="o-flex__item"> 840 <a href="/docs/structure.html" class="c-button c-button--quite" title="Previous article">Previous</a> 841 </div> 842 843 844 <div class="o-flex__item"> 845 <a href="/docs/dashboard.html" class="c-button c-button--quite" title="Next article">Next</a> 846 </div> 847 848 </div> 849 850 851 </div> 852 </div> 853 <div class="o-guided-content__addition"> 854 <h3 class="c-category-title">Contents</h3> 855 <ol class="o-list-bare"><li class="o-list-bare__item o-list-bare-level-2 o-ellipsis"><a href="#Using-the-run-command" class="u-link-uniform">Using the run command</a></li><li class="o-list-bare__item o-list-bare-level-2 o-ellipsis"><a href="#Running-an-app-without-the-dashboard" class="u-link-uniform">Running an app without the dashboard</a></li><li class="o-list-bare__item o-list-bare-level-2 o-ellipsis"><a href="#Running-an-app-without-opening-a-browser" class="u-link-uniform">Running an app without opening a browser</a></li><li class="o-list-bare__item o-list-bare-level-2 o-ellipsis"><a href="#Running-an-app-without-starting-a-web-server" class="u-link-uniform">Running an app without starting a web server</a></li><li class="o-list-bare__item o-list-bare-level-2 o-ellipsis"><a href="#Running-apps-in-different-modes" class="u-link-uniform">Running apps in different modes</a></li><li class="o-list-bare__item o-list-bare-level-2 o-ellipsis"><a href="#Switching-environments" class="u-link-uniform">Switching environments</a></li><li class="o-list-bare__item o-list-bare-level-2 o-ellipsis"><a href="#Starting-a-blockchain-separately" class="u-link-uniform">Starting a blockchain separately</a></li><li class="o-list-bare__item o-list-bare-level-2 o-ellipsis"><a href="#Using-the-blockchain-simulator" class="u-link-uniform">Using the blockchain simulator</a></li><li class="o-list-bare__item o-list-bare-level-2 o-ellipsis"><a href="#Resetting-apps" class="u-link-uniform">Resetting apps</a></li></ol> 856 </div> 857 </div> 858 </section> 859 </main> 860 861 <script src="/js/linkjuice/dist/linkjuice.min.js"></script> 862 863 <footer role="contentinfo" class="c-footer o-distance-xxl"> 864 <div class="o-container"> 865 <div class="c-footer__top"> 866 <p class="c-category-title c-footer__top__title u-text-light"> 867 <a href="/" class="c-logo c-logo--negative" title="Embark">Embark</a> 868 </p> 869 </div> 870 <div class="c-footer__body"> 871 <div class="o-grid"> 872 <div class="o-grid__column--1-1 o-grid__column--medium-1-2 o-grid__column--large-1-5"> 873 <p class="c-category-title u-text-light">Resources</p> 874 <ul class="o-list-bare"> 875 <li class="o-list-bare__item"> 876 <a href="/docs/quick_start.html" class="u-link-ghost" title="Quick Start">Quick Start</a> 877 </li> 878 <li class="o-list-bare__item"> 879 <a href="/docs" class="u-link-ghost" title="Documentation">Documentation</a> 880 </li> 881 <li class="o-list-bare__item"> 882 <a href="https://blog.embarklabs.io" target="_blank" rel="noopener" class="u-link-ghost" title="Blog">Blog</a> 883 </li> 884 <li class="o-list-bare__item"> 885 <a href="/docs/faq.html" class="u-link-ghost" title="FAQ">FAQ</a> 886 </li> 887 <li class="o-list-bare__item"> 888 <a href="/docs/troubleshooting.html" class="u-link-ghost" title="Troubleshooting">Troubleshooting</a> 889 </li> 890 </ul> 891 </div> 892 <div class="o-grid__column--1-1 o-grid__column--medium-1-2 o-grid__column--large-1-5"> 893 <p class="c-category-title u-text-light">Help</p> 894 <ul class="o-list-bare"> 895 <li class="o-list-bare__item"> 896 <a href="https://stackoverflow.com/questions/tagged/embark" target="_blank" rel="noopener" class="u-link-ghost" title="Embark Questions">Stack Overflow</a> 897 </li> 898 <li class="o-list-bare__item"> 899 <a href="https://gitter.im/embark-framework/Lobby" target="_blank" rel="noopener" class="u-link-ghost" title="Gitter">Gitter</a> 900 </li> 901 <li class="o-list-bare__item"> 902 <a href="https://github.com/embarklabs/embark/issues" target="_blank" rel="noopener" class="u-link-ghost" title="Report issues">Report issues</a> 903 </li> 904 <li class="o-list-bare__item"> 905 <a href="https://github.com/embarklabs/embark/blob/master/CODE_OF_CONDUCT.md" target="_blank" rel="noopener" class="u-link-ghost" title="Code of Conduct">Code of Conduct</a> 906 </li> 907 </ul> 908 </div> 909 <div class="o-grid__column--1-1 o-grid__column--medium-1-2 o-grid__column--large-1-5"> 910 <p class="c-category-title u-text-light">Community</p> 911 <ul class="o-list-bare"> 912 <li class="o-list-bare__item"> 913 <a href="https://github.com/embarklabs" target="_blank" rel="noopener" class="u-link-ghost" title="Github">Github</a> 914 </li> 915 <li class="o-list-bare__item"> 916 <a href="https://twitter.com/EmbarkProject" target="_blank" rel="noopener" class="u-link-ghost" title="Twitter">Twitter</a> 917 </li> 918 <li class="o-list-bare__item"> 919 <a href="/docs/contributing.html" class="u-link-ghost" title="Contribute">Contribute</a> 920 </li> 921 <li class="o-list-bare__item"> 922 <a href="/community/#team" class="u-link-ghost" title="Team">Team</a> 923 </li> 924 </ul> 925 </div> 926 927 <div class="o-grid__column--1-1 o-grid__column--medium-1-2 o-grid__column--large-1-4"> 928 <p class="c-category-title u-text-light">The Status Network</p> 929 <ul class="o-list-bare two-columns"> 930 <li class="o-list-bare__item"><a class="u-link-ghost" href="https://status.im/" target="_blank">Status</a></li> 931 <li class="o-list-bare__item"><a class="u-link-ghost" href="https://keycard.tech/" target="_blank">Keycard</a></li> 932 <li class="o-list-bare__item"><a class="u-link-ghost" href="https://dap.ps/" target="_blank">dap.ps</a></li> 933 <li class="o-list-bare__item"><a class="u-link-ghost" href="https://teller.exchange/" target="_blank">Teller</a></li> 934 <li class="o-list-bare__item"><a class="u-link-ghost" href="https://assemble.fund/" target="_blank">Assemble</a></li> 935 <li class="o-list-bare__item"><a class="u-link-ghost" href="https://subspace.embarklabs.io/" target="_blank">Subspace</a></li> 936 <li class="o-list-bare__item"><a class="u-link-ghost" href="https://vac.dev/" target="_blank">Vac</a></li> 937 <li class="o-list-bare__item"><a class="u-link-ghost" href="https://nimbus.team/" target="_blank">Nimbus</a></li> 938 </ul> 939 </div> 940 </div> 941 </div> 942 <div class="c-footer__bottom"> 943 <p class="u-text-light"> 944 <a href="https://status.im/privacy-policy.html" title="Privacy Policy" target="_blank" class="u-text-light">Privacy Policy</a> 945 / © 2019-2020 Embark 946 </p> 947 </div> 948 </div> 949 </footer> 950 951 952 953 954 <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.4/highlight.min.js"></script> 955 <script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script> 956 <script> 957 const EMBARK_DOC_VERSIONS = { 958 'latest': 'https://framework.embarklabs.io/docs','3.2': 'https://5ca4e0fdb29712000adde37f--embark-site-versions.netlify.com/docs/' 959 }; 960 </script> 961 962 963 <!-- Fathom - simple website analytics - https://github.com/usefathom/fathom --> 964 <script> 965 (function(f, a, t, h, o, m){ 966 a[h]=a[h]||function(){(a[h].q=a[h].q||[]).push(arguments)}; 967 o=f.createElement('script'), 968 m=f.getElementsByTagName('script')[0]; 969 o.async=1; o.src=t; o.id='fathom-script'; 970 m.parentNode.insertBefore(o,m) 971 })(document, window, '//fathom.status.im/tracker.js', 'fathom'); 972 fathom('set', 'siteId', 'YDUQQ'); 973 fathom('trackPageview'); 974 </script> 975 <!-- / Fathom --> 976 977 978 <script src="/js/index.js"></script> 979 980 981 <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"></script> 982 <script type="text/javascript"> 983 docsearch({ 984 apiKey: '439d8dc2add18007a2f31be4a9c0ed70', 985 indexName: 'embark', 986 inputSelector: '#search-input' 987 }); 988 </script> 989 990 </body> 991 </html> 992