Important: The currently supported version of CRA by
backpack-react-scripts is up to
v2.1.2. Versions above this will not work.
This package is a fork of Create React App (specifically the
react-scripts package). It's intended to be used in conjuction with
create-react-app like so:
npx firstname.lastname@example.org my-app --email@example.com # start your app development like you normally would with `create-react-app` cd my-app npm start
What is different in our fork?
- Compilation of uncompiled Backpack components (specifically JSX).
- Skyscanner specific template with Backpack components integrated out of the box.
- CSS Modules enabled by default for all
- Ability to create a bundle for server side rending.
- Automatic chunking is disabled by default.
js.html: New files in the
build/output folder. These are html partials that include
<link />references to the various static assets output by webpack. Useful if automatic chunking is turned on and you don't want to worry about order.
- A bunch of configuration options via
crossOriginLoading: Modify the default behaviour, see docs.
babelIncludePrefixes: An array of module name prefixes to opt into babel compilation. Includes
["@skyscanenr/", "bpk-", "saddlebag-"]by default.
enableAutomaticChunking: Boolean, opt in to automatic chunking of vendor, common and app code.
vendorsChunkRegex: String, Regex for picking what goes into the
cacheGroupsin webpack docs. Dependent on
amdExcludes: Array of module names to exclude from AMD parsing. Incldues
externals: exposing the Webpack config to modify externals, see docs.
ssrExternals: Similar to above, but for
cssModules: Boolean, true by default.
Releasing a new version of
To publish a new version of
backpack-react-scripts, run the following command:
npm run publish -- --scope backpack-react-scripts
You will be prompted to select a new semver version (MAJOR, MINOR, PATCH). Use the CHANGELOG.md to decide on the nature of the changes since the last release.
- If you want to be extra careful, you can publish a prerelease by running this instead:
npm run publish -- --scope backpack-react-scripts --canary
Update the CHANGELOG.md with the new version, taking care to follow the format of previous releases.
Keeping this fork updated
We wish to keep this fork updated with the upstream repo to benefit from the ongoing open source development
create-react-app. To keep this fork up to date, please follow the steps below:
masteris in sync with
git checkout master git remote add upstream firstname.lastname@example.org:facebook/create-react-app.git git fetch upstream git reset --hard upstream/master git push --force-with-lease
forkon top of a tagged release on
git checkout fork git rebase <commit>
<commit>should be the SHA-1 of the latest upstream release - not just the latest i.e.
Pair with someone else to fix any conflicts and cross examine changes in upstream with changes in our fork.
This is the most time consuming part. Take care to make sure you are not regressing any functionality that we have added in our fork.
Re-name your local, rebased
forkbranch to something else and push it to origin. This will ensure it runs through CI and you can verify your changes.
git branch -m <branch> git push origin <branch>
Finally, when we are confident that the rebase has been successful, re-name your branch back to
forkand push it to origin:
git branch -m fork git push --force-with-lease