This is a collection of JS libraries and components which are used across various Expensify projects. These libraries are provided as-is, and the repos which use them will need to do their own bundling, minifying, and uglifying.
- Clone this repo to a directory of your choosing
- Run
npm install
to install all the dependencies
- Write all code as ES6.
- Always lint your code with
npm run grunt watch
- Make sure you're using http://editorconfig.org/
The best way to test your code while you are developing changes is via npm link
.
- Run
npm link
in the project root cd
into the project directory that has a dependency onexpensify-common
- Run
npm link expensify-common
If that does not work, another option is running npm i expensify-common ../expensify-common --save
.
Alternatively, you can edit files directly in a project's node_modules
then apply those changes to this repository.
- Fork this repository and create a new branch
- Open a PR to merge your changes
- An Expensify engineer will be automatically assigned to your PR
- They will review and accept your changes, merge them, then deploy a new version
Once the PR has been merged, update the package.json
commit hash in any repos with a dependency on the code being changed in expensify-common, don't forget to run a npm install
so package-lock.json
is also updated. Be sure to check the repos below to confirm whether or not they are affected by your changes!
- Expensify/Web-Expensify
- Expensify/Web-Secure
- Expensify/Mobile-Expensify
- Expensify/App
- Expensify/Comp