NOTICE: SUPPORT FOR THIS PROJECT HAS ENDED
This projected was owned and maintained by Walmart. This project has reached its end of life and Walmart no longer supports this project.
We will no longer be monitoring the issues for this project or reviewing pull requests. You are free to continue using this project under the license terms or forks of this project at your own risk. This project is no longer subject to Walmart's bug bounty program or other security monitoring.
We recommend you take the following action:
- Review any configuration files used for build automation and make appropriate updates to remove or replace this project
- Notify other members of your team and/or organization of this change
- Notify your security team to help you evaluate alternative options
For security reasons, Walmart does not transfer the ownership of our primary repos on Github or other platforms to other individuals/organizations. Further, we do not transfer ownership of packages for public package management systems.
If you would like to fork this package and continue development, you should choose a new name for the project and create your own packages, build automation, etc.
Please review the licensing terms of this project, which continue to be in effect even after decommission.
The bolt
repository is home of multiple packages that belong to the bolt suite of tools. This helps keep versioning consistent and makes working on the packages themselves much easier than having them each in separate repositories.
packages/bolt is the meta-task runner's core, which includes webpack
, eslint
, karma
, mocha
and chai
.
packages/bolt-cli is the thin globally installed CLI runner that allows a developer to run bolt
commands by providing access to the project's locally installed bolt
instance.
packages/bolt-standard-flux is a bolt-standard
configuration set for apps, which deviates slightly from a component library configuration set.
packages/bolt-standard-component-lib is a work in progress and an attempt to abstract what's unique about component libraries out into their own bolt-standard
configuration set, rather than having them live in the bolt
package.
The development environment requires make
, so it's limited to *nix systems
When starting development, clone down the repository:
$ git clone git@github.com:walmartreact/bolt.git && cd bolt
Once you're in the bolt
directory, you can run:
$ make bootstrap
bootstrap
will:
- run an
npm install
at the root level of the project - iteratively
npm install
for allpackages
- iteratively create links for all
packages
usingnpm link
Now you're ready to start developing bolt
packages.
Once you've bootstrapped the project and you want to start developing, the most sane way to do so is to run:
$ make watch
Running this command will watch all packages for changes and run them through babel
so any projects that are using bolt
will automatically be able to use the features you're developing within the packages
.
If you have rights to publish any of these packages
, the correct way to publish
is to run:
$ make publish
This will:
- ask you for the type of version change you're looking to make
- look for any changes to your project from the previous version and update the version
- publish the packages to npm
One of the great advantages to publishing this way is that all versions are consistent with the version they should be published for based on what bolt
itself is at, so it makes it a lot easier to keep versioning more consistent and easier to infer for users.