Awesome
ideal-rewires
easily impliment must-have rewires to supercharge your CRA-based project
Features
- customize via
.babelrc
.eslintrc
.stylelintrc
- inlining of your main bundle (code-splitting friendly)
- standard image compression
- lighthouse-oriented manifest generation
- whitelist un-precompiled libs (avoid nasty minification errors)
Installation
# with npm
$ npm install -D ideal-rewires
Usage
Make sure you've also installed the latest version of react-app-rewired
Create a config-overrides.js
file in your root director:
const rewire = require('ideal-rewires').default
// in this instance, all we want is to use a `.babelrc` file
const options = { babelrc: true }
module.exports = rewire(options)
All Options
options
The object that you pass to rewire()
options.babelrc
Whether to look for & (if present) use a .babelrc
file
options.eslintrc
Whether to look for & (if present) use a .eslintrc
file
options.stylelintrc
Whether to look for & (if present) use a .stylelintrc
file
options.appMeta
Used to generate the manifest.json
on build
options.appMeta.name
options.appMeta.nickname
options.appMeta.description
options.appMeta.icon
(path to 512 x 512 icon asset)
options.appMeta.iconBackgroundColor
options.appMeta.themeColor
options.devServerHeaders
Customize dev server headers (for instance, if you use an authentication API that requests your app's manifest)
options.whitelist
Whitelist un-precompiled libraries for compilation and avoid the following error (documented here):
Failed to minify the code from this file
This can be particularly helpful if you're directly or indirectly using the bitcoinjs-lib. Here's an example of this option's usage:
config-overrides.js
const rewire = require('ideal-rewires').default
module.exports = rewire({
whitelist: [
'bitcoinjs-lib',
'tiny-secp256k1/ecurve',
'base64url/dist/base64url',
'base64url/dist/pad-string',
'bip32',
].map(module => `node_modules/${module}`),
})