1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-22 17:33:23 +01:00
metamask-extension/development/build
Pedro Figueiredo 66c9654244
Implement tests for multiple service worker restarts on the mv3 build (#19293)
* implement multiple restart tests

* remove console.logs

* fix

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* close stale prs

* revert chromedriver version

* delete code leftover

* remove unlockWallet method

---------

Co-authored-by: Brad Decker <bhdecker84@gmail.com>
2023-06-20 11:17:08 +01:00
..
transforms feat: add yaml feature management (#18125) 2023-04-25 16:32:51 +02:00
config.js Have mmi build being generated (#19441) 2023-06-06 16:43:31 +01:00
constants.js Add validation to production build script (#15468) 2022-08-19 15:46:18 -02:30
display.js Rationalize build system arguments (#12047) 2021-09-09 12:44:57 -07:00
etc.js feat: add yaml feature management (#18125) 2023-04-25 16:32:51 +02:00
index.js Implement tests for multiple service worker restarts on the mv3 build (#19293) 2023-06-20 11:17:08 +01:00
manifest.js Fix build types not overriding the manifest (#19027) 2023-05-05 18:40:43 +02:00
README.md Migrate the build script to yargs (#14836) 2022-06-21 17:37:05 -02:30
sass-compiler.js Add Lavamoat to build system (#9939) 2021-02-22 22:43:29 +08:00
scripts.js Deprecated Icon and ButtonIcon clean up (#19220) 2023-05-19 10:33:02 -07:00
static.js feat: add yaml feature management (#18125) 2023-04-25 16:32:51 +02:00
styles.js deps: replace gulp-dart-sass with gulp-sass. (#16302) 2023-04-25 09:37:30 -05:00
task.js Improve logging at build-time (#18780) 2023-04-25 20:33:36 -10:00
utils.js feat: add yaml feature management (#18125) 2023-04-25 16:32:51 +02:00

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