|
|
|
# things that *are* used, that depcheck is wrong about
|
|
|
|
ignores:
|
|
|
|
#
|
|
|
|
# webapp deps
|
|
|
|
#
|
|
|
|
|
|
|
|
- '@babel/runtime'
|
|
|
|
- '@fortawesome/fontawesome-free'
|
|
|
|
- 'punycode'
|
|
|
|
|
|
|
|
#
|
|
|
|
# dev deps
|
|
|
|
#
|
Add build-time code exclusion using code fencing (#12060)
This PR adds build-time code exclusion by means of code fencing. For details, please see the README in `./development/build/transforms`. Note that linting of transformed files as a form of validation is added in a follow-up, #12075.
Hopefully exhaustive tests are added to ensure that the transform works according to its specification. Since these tests are Node-only, they required their own Jest config. The recommended way to work with multiple Jest configs is using the `projects` field in the Jest config, however [that feature breaks coverage collection](https://github.com/facebook/jest/issues/9628). That being the case, I had to set up two separate Jest configs. In order to get both test suites to run in parallel, Jest is now invoked via a script, `./test/run-jest.sh`.
By way of example, this build system feature allows us to add fences like this:
```javascript
this.store.updateStructure({
...,
GasFeeController: this.gasFeeController,
TokenListController: this.tokenListController,
///: BEGIN:ONLY_INCLUDE_IN(beta)
PluginController: this.pluginController,
///: END:ONLY_INCLUDE_IN
});
```
Which at build time are transformed to the following if the build type is not `beta`:
```javascript
this.store.updateStructure({
...,
GasFeeController: this.gasFeeController,
TokenListController: this.tokenListController,
});
```
Co-authored-by: Mark Stacey <markjstacey@gmail.com>
3 years ago
|
|
|
|
|
|
|
# safety fallback for npm lifecycle scripts, not used normally
|
|
|
|
- '@lavamoat/preinstall-always-fail'
|
|
|
|
# used in testing + ci
|
|
|
|
- '@metamask/auto-changelog' # invoked as `auto-changelog`
|
|
|
|
- '@metamask/forwarder'
|
|
|
|
- '@metamask/phishing-warning' # statically hosted as part of some e2e tests
|
|
|
|
- '@metamask/test-dapp'
|
|
|
|
- '@metamask/design-tokens' # Only imported in index.css
|
|
|
|
- '@tsconfig/node14' # required dynamically by TS, used in tsconfig.json
|
|
|
|
- '@sentry/cli' # invoked as `sentry-cli`
|
|
|
|
- 'chromedriver'
|
|
|
|
- 'depcheck' # ooo meta
|
|
|
|
- 'ganache-cli'
|
|
|
|
- 'geckodriver'
|
|
|
|
- 'jest'
|
|
|
|
- 'lavamoat-viz'
|
|
|
|
- 'prettier-plugin-sort-json' # automatically imported by prettier
|
|
|
|
- 'source-map-explorer'
|
|
|
|
# development tool
|
|
|
|
- 'yarn-deduplicate'
|
|
|
|
- 'improved-yarn-audit'
|
|
|
|
# storybook
|
|
|
|
- '@storybook/core'
|
|
|
|
- '@storybook/addon-essentials'
|
|
|
|
- '@storybook/addon-a11y'
|
|
|
|
- 'storybook-dark-mode'
|
|
|
|
- 'style-loader'
|
|
|
|
- 'css-loader'
|
|
|
|
- 'sass-loader'
|
|
|
|
- 'resolve-url-loader'
|
|
|
|
|
|
|
|
# files depcheck should not parse
|
|
|
|
ignorePatterns:
|
|
|
|
# seems to incorrectly parse scss @include pragmas?
|
|
|
|
- '**/*.scss'
|
|
|
|
# self-contained bundle used for testing
|
|
|
|
- '**/send-eth-with-private-key-test/web3js.js'
|
|
|
|
- '**/send-eth-with-private-key-test/ethereumjs-tx.js'
|