mirror of
https://github.com/status-im/metro.git
synced 2025-02-10 18:17:12 +00:00
28 lines
12 KiB
HTML
28 lines
12 KiB
HTML
<html><head><meta charset="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1"/><title>API · Metro</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta property="og:title" content="API · Metro"/><meta property="og:type" content="website"/><meta property="og:url" content="https://facebook.github.io/metro/index.html"/><meta property="og:description" content="## Methods"/><meta property="og:image" content="/metro/img/opengraph.png"/><link rel="shortcut icon" href="/metro/img/favicon/favicon.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="/metro/css/main.css"/><link rel="alternate" type="application/atom+xml" href="https://facebook.github.io/blog/atom.xml" title="Metro Blog ATOM Feed"/> <link rel="alternate" type="application/rss+xml" href="https://facebook.github.io/blog/feed.xml" title="Metro Blog RSS Feed"/><script async="" defer="" src="https://buttons.github.io/buttons.js"></script><script type="text/javascript" src="/metro/js/webplayer.js"></script><script type="text/javascript" src="https://snack.expo.io/embed.js"></script></head><body class="sideNavVisible"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/metro/"><img class="logo" src="/metro/img/metro.svg"/><h2 class="headerTitle">Metro</h2></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-internal"><li><a href="/metro/docs/en/getting-started.html" target="_self">Docs</a></li><li><a href="/metro/docs/en/api.html" target="_self">API</a></li><li><a href="/metro/en/help.html" target="_self">Help</a></li><li><a href="/metro/blog" target="_self">Blog</a></li><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search"/></li><li><a href="https://github.com/facebook/metro" target="_self">GitHub</a></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>API Reference</span></h2></div><div class="navGroups"><div class="navGroup navGroupActive"><h3>Introduction</h3><ul><li class="navListItem"><a class="navItem" href="/metro/docs/en/getting-started.html#content">Getting Started</a></li><li class="navListItem"><a class="navItem" href="/metro/docs/en/bundling.html#content">Bundling</a></li></ul></div><div class="navGroup navGroupActive"><h3>API Reference</h3><ul><li class="navListItem navListItemActive"><a class="navItem navItemActive" href="/metro/docs/en/api.html#content">API</a></li><li class="navListItem"><a class="navItem" href="/metro/docs/en/configuration.html#content">Configuring Metro</a></li><li class="navListItem"><a class="navItem" href="/metro/docs/en/cli.html#content">Metro CLI Options</a></li></ul></div><div class="navGroup navGroupActive"><h3>Guides</h3><ul><li class="navListItem"><a class="navItem" href="/metro/docs/en/troubleshooting.html#content">Troubleshooting</a></li></ul></div></div></section></div><script>
|
||
var toggler = document.getElementById('navToggler');
|
||
var nav = document.getElementById('docsNav');
|
||
toggler.onclick = function() {
|
||
nav.classList.toggle('docsSliderActive');
|
||
};
|
||
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/facebook/metro/edit/master/docs/API.md" target="_blank">Edit this Doc</a><h1>API</h1></header><article><div><h2><a class="anchor" name="methods"></a>Methods <a class="hash-link" href="#methods">#</a></h2><ul><li><a href="#loadmetroconfigurationfilepath-string-options" target=""><code>loadMetroConfiguration(filepath?: string, <options>)</code></a></li><li><a href="#findmetroconfigurationfilepath-string-options" target=""><code>findMetroConfiguration(filepath?: string, <options>)</code></a></li><li><a href="#async-runbuild-options" target=""><code>async runBuild(<options>)</code></a></li><li><a href="#async-runserver-options" target=""><code>async runServer(<options>)</code></a></li><li><a href="#createconnectmiddleware-options" target=""><code>createConnectMiddleware(<options>)</code></a></li></ul><hr/><h2><a class="anchor" name="quick-start"></a>Quick Start <a class="hash-link" href="#quick-start">#</a></h2><ul><li><p>Compile a file</p><pre class="prism language-javascript"><span class="token keyword">await</span> Metro<span class="token punctuation">.</span><span class="token function">runBuild</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
|
||
entry<span class="token punctuation">:</span> <span class="token string">'index.js'</span><span class="token punctuation">,</span>
|
||
out<span class="token punctuation">:</span> <span class="token string">'bundle.js'</span><span class="token punctuation">,</span>
|
||
config<span class="token punctuation">:</span> Metro<span class="token punctuation">.</span><span class="token function">loadMetroConfiguration</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span></pre></li><li><p>Run a server & watch the filesystem for changes</p><pre class="prism language-javascript"><span class="token keyword">await</span> Metro<span class="token punctuation">.</span><span class="token function">runServer</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
|
||
port<span class="token punctuation">:</span> <span class="token number">8080</span><span class="token punctuation">,</span>
|
||
config<span class="token punctuation">:</span> Metro<span class="token punctuation">.</span><span class="token function">loadMetroConfiguration</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span></pre></li></ul><h2><a class="anchor" name="reference"></a>Reference <a class="hash-link" href="#reference">#</a></h2><p>All functions exposed below accept an additional <code>config</code> option. This object should be the <a href="/metro/docs/en/cli.html" target="">Metro configuration</a> exposed by your <code>metro.config.js</code> file - you can obtain it by simply requiring this file.</p><h3><a class="anchor" name="loadmetroconfigurationfilepath-string-options"></a><code>loadMetroConfiguration(filepath?: string, <options>)</code> <a class="hash-link" href="#loadmetroconfigurationfilepath-string-options">#</a></h3><p><strong>Basic options:</strong> <code>cwd</code>, <code>basename</code></p><p>Load the Metro configuration, either from <code>filepath</code> if specified, or by traversing the directory hierarchy from <code>cwd</code> to the root until it finds a file named <code>basename</code> (by default <code>metro.config.js</code>). The returned configuration will have been normalized and merged with Metro's default values.</p><h3><a class="anchor" name="findmetroconfigurationfilepath-string-options"></a><code>findMetroConfiguration(filepath?: string, <options>)</code> <a class="hash-link" href="#findmetroconfigurationfilepath-string-options">#</a></h3><p><strong>Basic options:</strong> <code>cwd</code>, <code>basename</code></p><p>Same as above, but only locates the file.</p><h3><a class="anchor" name="async-runbuild-options"></a><code>async runBuild(<options>)</code> <a class="hash-link" href="#async-runbuild-options">#</a></h3><p><strong>Required options:</strong> <code>entry</code>, <code>out</code></p><p><strong>Basic options:</strong> <code>dev</code>, <code>optimize</code>, <code>platform</code>, <code>sourceMap</code>, <code>sourceMapUrl</code></p><p>Bundles <code>entry</code> for the given <code>platform</code>, and saves it to location <code>out</code>. If <code>sourceMap</code> is set, also generates a source map. The source map will be inlined, unless <code>sourceMapUrl</code> is also defined. In the latter case, a new file will be generated with the basename of the <code>sourceMapUrl</code> parameter</p><h3><a class="anchor" name="async-runserver-options"></a><code>async runServer(<options>)</code> <a class="hash-link" href="#async-runserver-options">#</a></h3><p><strong>Basic options:</strong> <code>host</code>, <code>port</code>, <code>secure</code>, <code>secureKey</code>, <code>secureCert</code>, <code>hmrEnabled</code></p><p>Starts a full Metro HTTP server. It will listen on the specified <code>host:port</code>, and can then be queried to retrieve bundles for various entry points. If the <code>secure</code> family of options are present, the server will be exposed over HTTPS. If <code>hmrEnabled</code> is set, the server will also expose a websocket server and inject the HMR client into the generated bundles.</p><h3><a class="anchor" name="createconnectmiddleware-options"></a><code>createConnectMiddleware(<options>)</code> <a class="hash-link" href="#createconnectmiddleware-options">#</a></h3><p><strong>Basic options:</strong> <code>port</code></p><p>Instead of creating the full server, creates a Connect middleware that answers to bundle requests. This middleware can then be plugged into your own servers. The <code>port</code> parameter is optional and only used for logging purposes.</p></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="bundling.html#content">← Previous</a><a class="docs-next button" href="configuration.html#content">Next →</a></div></div></div></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/metro/" class="nav-home"><img src="/metro/img/metro.svg" alt="Metro" width="66" height="58"/></a><div><h5>Docs</h5><a href="/metro/docs/en/getting-started.html">Getting Started</a><a href="/metro/docs/en/api.html">API Reference</a></div><div><h5>Community</h5><a href="https://stackoverflow.com/questions/tagged/metrojs" target="_blank">Stack Overflow</a><a href="https://twitter.com/MetroBundler" target="_blank">Twitter</a></div><div><h5>More</h5><a href="/metro/blog">Blog</a><a href="https://github.com/facebook/metro">GitHub</a><a class="github-button" href="https://github.com/facebook/metro" data-icon="octicon-star" data-count-href="/facebook/metro/stargazers" data-count-api="/repos/facebook/metro#stargazers_count" data-count-aria-label="# stargazers on GitHub" aria-label="Star this project on GitHub">Star</a></div></section><a href="https://code.facebook.com/projects/" target="_blank" class="fbOpenSource"><img src="/metro/img/oss_logo.png" alt="Facebook Open Source" width="170" height="45"/></a><section class="copyright">Copyright © 2018 Facebook Inc.</section></footer></div><script type="text/javascript" src="//cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
|
||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
||
|
||
ga('create', 'UA-44373548-17', 'auto');
|
||
ga('send', 'pageview');
|
||
</script><script>
|
||
var search = docsearch({
|
||
apiKey: '0cf53e80b4f3b371219cdcaa6b62e08b',
|
||
indexName: 'metro',
|
||
inputSelector: '#search_input_react'
|
||
});
|
||
</script></body></html> |