UNPKG

electron-forge

Version:

A complete tool for building modern Electron applications

133 lines (114 loc) 7.01 kB
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <base data-ice="baseUrl" href="../../"> <title data-ice="title">api/start.js | API Document</title> <link type="text/css" rel="stylesheet" href="css/style.css"> <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css"> <script src="script/prettify/prettify.js"></script> <script src="script/manual.js"></script> </head> <body class="layout-container" data-ice="rootContainer"> <header> <a href="./">Home</a> <a href="identifiers.html">Reference</a> <a href="source.html">Source</a> <a data-ice="repoURL" href="https://github.com/electron-userland/electron-forge" class="repo-url-github">Repository</a> <div class="search-box"> <span> <img src="./image/search.png"> <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span> </span> <ul class="search-result"></ul> </div> </header> <nav class="navigation" data-ice="nav"><div> <ul> <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-import">import</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-init">init</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-install">install</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-lint">lint</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-make">make</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-package">package</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-publish">publish</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-start">start</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-ImportOptions">ImportOptions</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-InitOptions">InitOptions</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-InstallOptions">InstallOptions</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-LintOptions">LintOptions</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-MakeOptions">MakeOptions</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-PackageOptions">PackageOptions</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-PublishOptions">PublishOptions</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-StartOptions">StartOptions</a></span></span></li> </ul> </div> </nav> <div class="content" data-ice="content"><h1 data-ice="title">api/start.js</h1> <pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import &apos;colors&apos;; import { spawn } from &apos;child_process&apos;; import path from &apos;path&apos;; import asyncOra from &apos;../util/ora-handler&apos;; import readPackageJSON from &apos;../util/read-package-json&apos;; import rebuild from &apos;../util/rebuild&apos;; import resolveDir from &apos;../util/resolve-dir&apos;; /** * @typedef {Object} StartOptions * @property {string} [dir=process.cwd()] The path to the app to be run * @property {boolean} [interactive=false] Whether to use sensible defaults or prompt the user visually * @property {boolean} [enableLogging=false] Enables advanced internal Electron debug calls * @property {Array&lt;string&gt;} [args] Arguments to pass through to the launched Electron application */ /** * Start an Electron application. * * @param {StartOptions} providedOptions - Options for the Publish method * @return {Promise} Will resolve when the application is launched */ export default async (providedOptions = {}) =&gt; { // eslint-disable-next-line prefer-const, no-unused-vars let { dir, interactive, enableLogging, args } = Object.assign({ dir: process.cwd(), interactive: false, enableLogging: false, args: [], }, providedOptions); await asyncOra(&apos;Locating Application&apos;, async () =&gt; { dir = await resolveDir(dir); if (!dir) { // eslint-disable-next-line no-throw-literal throw &apos;Failed to locate startable Electron application&apos;; } }); const packageJSON = await readPackageJSON(dir); await rebuild(dir, packageJSON.devDependencies[&apos;electron-prebuilt-compile&apos;], process.platform, process.arch); const spawnOpts = { cwd: dir, stdio: &apos;inherit&apos;, env: Object.assign({}, process.env, enableLogging ? { ELECTRON_ENABLE_LOGGING: true, ELECTRON_ENABLE_STACK_DUMPING: true, } : {}), }; await asyncOra(&apos;Launching Application&apos;, async () =&gt; { if (process.platform === &apos;win32&apos;) { spawn(path.resolve(dir, &apos;node_modules/.bin/electron.cmd&apos;), [&apos;.&apos;].concat(args), spawnOpts); } else { spawn(path.resolve(dir, &apos;node_modules/.bin/electron&apos;), [&apos;.&apos;].concat(args), spawnOpts); } }); }; </code></pre> </div> <footer class="footer"> Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(0.5.2)</span><img src="./image/esdoc-logo-mini-black.png"></a> </footer> <script src="script/search_index.js"></script> <script src="script/search.js"></script> <script src="script/pretty-print.js"></script> <script src="script/inherited-summary.js"></script> <script src="script/test-summary.js"></script> <script src="script/inner-link.js"></script> <script src="script/patch-for-local.js"></script> </body> </html>