metamask-extension - 🌐 🔌MetaMask 浏览器扩展,支持浏览启用以太坊区块链的网站

Created at: 2015-09-07 00:34:48
Language: JavaScript
License: NOASSERTION

元掩码浏览器扩展

你可以在我们的官方网站上找到最新版本的MetaMask。有关使用MetaMask的帮助,请访问我们的用户支持网站

有关一般问题功能请求开发人员问题,请访问我们的社区论坛

MetaMask支持Firefox,Google Chrome和基于Chromium的浏览器。我们建议使用最新的可用浏览器版本。

有关最新消息,请关注我们的TwitterMedium页面。

要了解如何开发与MetaMask兼容的应用程序,请访问我们的开发人员文档

要了解如何为MetaMask项目本身做出贡献,请访问我们的内部文档

本地建筑

  • 安装节点.js版本 16
    • 如果你使用的是nvm(推荐),运行将自动为你选择正确的节点版本。
      nvm use
  • 安装纱线
  • 安装依赖关系:(不是通常的安装命令)
    yarn setup
  • 将文件复制到
    .metamaskrc.dist
    .metamaskrc
  • 使用 将项目构建到文件夹中。
    ./dist/
    yarn dist
    • (可选)可以运行以运行开发模式。
      yarn start

未压缩的构建可以在 中找到,压缩的构建可以在一旦构建中找到。

/dist
/builds

有关生成系统用法信息,请参阅生成系统自述文件。

贡献

开发构建

要启动开发构建(例如,使用日志记录和文件监视),请运行 。

yarn start

React and Redux DevTools

要启动 React DevTools,请使用浏览器中安装的开发版本运行。这将在单独的窗口中打开;不需要浏览器扩展。

yarn devtools:react

要启动 Redux DevTools 扩展,请执行以下操作

  • 全局安装软件包(例如
    remotedev-server
    yarn global add remotedev-server
    )
  • 安装 Redux Devtools 扩展。
  • 打开 Redux DevTools 扩展,然后选中“远程开发工具设置”中的“使用自定义(本地)服务器”复选框,使用默认服务器配置(主机、端口、安全连接复选框未选中)。
    localhost
    8000

然后,使用浏览器中安装的开发版本运行该命令。这将使你能够使用 Redux DevTools 扩展来检查 MetaMask。

yarn devtools:redux

要创建开发版本并同时运行这两个工具,请运行 。

yarn start:dev

测试 Dapp

此测试站点可用于执行不同的用户流。

运行单元测试和 Linting

使用 运行单元测试和 linter。若要仅运行单元测试,请运行 。

yarn test
yarn test:unit

你可以使用 单独运行 linter,也可以使用 自动修复一些 lint 问题。你还可以仅在本地更改上运行这两个命令,以分别节省时间。

yarn lint
yarn lint:fix
yarn lint:changed
yarn lint:changed:fix

运行端到端测试

我们的e2e测试套件可以在Firefox或Chrome上运行。在任一情况下,首先通过运行 来创建测试生成。

yarn build:test

  • Firefox e2e 测试可以使用 .

    yarn test:e2e:firefox

  • Chrome e2e 测试可以使用 .软件包的主要版本必须与本地 Chrome 安装的主要版本相匹配。如果它们不匹配,请在运行 Chrome e2e 测试之前更新落后的那个。

    yarn test:e2e:chrome
    chromedriver

  • Single e2e tests can be run with along with the options below.

    yarn test:e2e:single test/e2e/tests/TEST_NAME.spec.js

--browser             Set the browser used; either 'chrome' or 'firefox'.

--leave-running       Leaves the browser running after a test fails, along with anything else 
                      that the test used (ganache, the test dapp, etc.).
                      
--retries             Set how many times the test should be retried upon failure. Default is 0.

使用chrome运行测试用例并使浏览器保持打开状态的示例是:

account-details
yarn test:e2e:single test/e2e/tests/account-details.spec.js --browser=chrome --leave-running

更改依赖关系

每当更改依赖项(在 或 中添加、删除或更新)时,必须使各种文件保持最新。

package.json
yarn.lock

  • yarn.lock
    :
    • 更改后再次运行,以确保已正确更新。
      yarn setup
      yarn.lock
    • 运行以从锁定文件中删除重复的依赖项。
      yarn yarn-deduplicate
  • 中的配置
    allow-scripts
    package.json
    • 运行以自动更新配置。此配置确定是否允许运行包的安装/安装后脚本。查看每个新包以确定安装脚本是否需要运行,并在必要时进行测试。
      yarn allow-scripts auto
      allow-scripts
    • 不幸的是,在不同的平台上会表现得不一致。macOS 和 Windows 用户可能会看到与可选依赖项相关的无关更改。
      yarn allow-scripts auto
  • LavaMoat 策略文件。tl;dr将运行以更新这些文件,但细节中可能存在魔鬼。继续阅读以获取更多信息。
    yarn lavamoat:auto
    • 有两组 LavaMoat 策略文件:
      • 生产 LavaMoat 策略文件 (),这些文件是使用 重新生成的。
        lavamoat/browserify/*/policy.json
        yarn lavamoat:background:auto
        • 每当后台的生产依赖项发生更改时,都应重新生成这些依赖项。
      • 构建系统 LavaMoat 策略文件 (),该文件是使用 重新生成的。
        lavamoat/build-system/policy.json
        yarn lavamoat:build:auto
        • 每当构建系统本身使用的依赖项发生更改时,都应重新生成此值。
    • 每当重新生成策略文件时,请查看更改以确定授予每个包的访问权限是否合适。
    • 不幸的是,在不同的平台上会表现得不一致。macOS 和 Windows 用户可能会看到与可选依赖项相关的无关更改。
      yarn lavamoat:auto
    • 请记住,任何类型的动态导入或动态使用全局变量都可能逃避LavaMoat的静态分析。请参阅 LavaMoat 文档,或在遇到任何问题时寻求帮助。

建筑

架构图

其他文档