Distributable files.
This directory contains packages exporting distributable files for use in browser environments or as shared ("vendored") libraries in server environments. Each distributable file is a standalone UMD bundle which, if no recognized module system is present, will expose bundle contents to the global scope.
First, install one of the packages in this directory containing distributable files. For example, to install the main stdlib bundle
$ npm install --save @stdlib/dist-flat
To use a package's default bundle in a webpage,
<script type="text/javascript" src="/path/to/node_modules/@stdlib/dist-<pkg>"></script>
where dist-<pkg>
corresponds to the desired published distributable file package.
To use a specific bundle (e.g., un-minified), include the bundle file path
<script type="text/javascript" src="/path/to/node_modules/@stdlib/dist-<pkg>/build/<bundle>.js"></script>
where <bundle>
corresponds to the desired bundle. For example, to include the un-minified bundle found in the package used in the example above
<script type="text/javascript" src="/path/to/@stdlib/dist-flat/build/bundle.js"></script>
If no recognized module system is present, access bundle contents via the global scope. For example, assuming the flat namespace bundle sourced above,
<script type="text/javascript">
// `stdlib` is a global variable...
var erf = stdlib.base.erf;
console.log( erf( 0.5 ) );
</script>
-
Bundles are one of two namespace types:
flat
ortree
. Atree
namespace is a nested object namespace which mirrors the project's layout (e.g.,stdlib.math.base.special.erf
). Aflat
namespace uses the global alias namespace, where each package has a unique alias (e.g.,stdlib.base.erf
). Which namespace is preferred depends on personal taste and application context. -
Each minified bundle has a corresponding gzip-compressed bundle. The gzip compression level for each compressed bundle is
9
, which is the highest (and most optimal) compression level. Deciding between uncompressed and compressed bundles depends on the application and whether compression is handled elsewhere in the application stack (e.g., nginx, CDN, et cetera). -
While you are strongly encouraged to vendor bundles and host with a CDN/provider which can provide availability guarantees, especially for production applications, bundles are available via unpkg for quick demos, proof-of-concepts, and instructional material. For example,
<script type="text/javascript" src="https://unpkg.com/@stdlib/dist-flat"></script>
Please be mindful that unpkg is a free, best-effort service relying on donated infrastructure which does not provide any availability guarantees. Under no circumstances should you abuse or misuse the service. You have been warned.
-
If you intend on embedding a standalone bundle within another bundle, you may need to rename
require
calls within the standalone bundle before bundling in order to maintain scoped module resolution. For example, if you plan on using browserify to generate a bundle containing embedded bundles, browserify plugins exist to "de-require" those bundles prior to bundling.