4b9a4d330c
* adds listeners for signatureControll and adds the handleSigningEvents method * clean up * updates signature request containers files * adds necessary methods * wip * signing flow with core methods * yarn lint * updates logic to fit latest signatureCOntroller * updates mmi extension package * updates signature-controller and message-manager packages * checkout develop lock file and run yarn * checkout develop lock file and package.json to test circleci * test fix * adds signature-controller new version * updates mmi extension package * tx-list update and runs lavamoat auto * lint fix * runs lavamoat auto * resets lavamoat/build-system/policy.jsono to develop * Update LavaMoat policies * adds back the dispatch * lint * changes needed to generate a mmi build * adds metametricsId in url param * adds necessary fence --------- Co-authored-by: MetaMask Bot <metamaskbot@users.noreply.github.com> |
||
---|---|---|
.. | ||
transforms | ||
config.js | ||
constants.js | ||
display.js | ||
etc.js | ||
index.js | ||
manifest.js | ||
README.md | ||
sass-compiler.js | ||
scripts.js | ||
static.js | ||
styles.js | ||
task.js | ||
utils.js |
The MetaMask Build System
tl;dr
yarn dist
for prod,yarn start
for local development. Add--build-type flask
to build Flask, our canary distribution with more experimental features.
This directory contains the MetaMask build system, which is used to build the MetaMask Extension such that it can be used in a supported browser.
From the repository root, the build system entry file is located at ./development/build/index.js
.
Several package scripts invoke the build system.
For example, yarn start
creates a watched development build, and yarn dist
creates a production build.
Some of these scripts applies lavamoat
to the build system, and some do not.
For local development, building without lavamoat
is faster and therefore preferable.
The build system is not a full-featured CLI, but rather a script that expects some command line arguments and environment variables. For instructions regarding environment variables, see the main repository readme.
Generally speaking, the build system consists of gulp
tasks that either manipulate static assets or bundle source files using Browserify.
Production-ready zip files are written to the ./builds
directory, while "unpacked" extension builds
are written to the ./dist
directory.
Our JavaScript source files are transformed using Babel, specifically using
the babelify
Browserify transform.
Source file bundling tasks are implemented in the ./development/build/scripts.js
.
Locally implemented Browserify transforms, some of which affect how we write JavaScript, are listed and documented here.
Usage
See node ./development/build/index.js --help