This workspace contains source code for M8d project.
Each app in the apps directory has own README where you can find more details about it.
- Install dependencies:
npm install - Launch desired app for development:
npx nx start {app-name}Or navigate to an app directory to run it as described in README.
Below are links to tools and services used in this project:
- Tasks (will be added later)
- Design (will be added later)
- Expo (will be added later)
- Google Play Console (will be added later)
- App Store Connect (will be added later)
- Firebase (will be added later)
- API Documentation (will be added later)
- Laravel Telescope (will be added later)
- Sentry (will be added later)
This workspace uses Nx for repository management and code generation. You can install Nx extension for your code editor.
We use custom Nx generators plugin for code generation.
Run npx nx list @ronas-it/nx-generators to view a list of available generators in the plugin.
Each generator accepts the --help argument to show instructions.
Example:
npx nx g react-libCheck the generators docs for more operations with libraries.
npx nx g react-component- generate a root component in some librarynpx nx g react-component --name=AppButton --subcomponent- generate a library sub-component.
npx nx g expo-app- generate new RN Expo app
To execute tasks with Nx use the following syntax: npx nx <target> <project> <...options>.
You can also run multiple targets: npx nx run-many -t <target1> <target2>.
Targets can be defined in the package.json or projects.json. Learn more in the docs.
This repository uses NPM Workspaces to manage dependencies.
Dependencies that used in libs should be listed both in root and app's package.json.
Run the following scripts in the repository root:
npm i {some-package} -w {app-name} -iwr- install some package for particular app and for the whole repositorynpm i {some-package} -ws -iwr- install some package for all apps and including root onepackage.json
You can also navigate to an app directory and install package there:
npm i {some-package} -iwr
The same rules apply to removing dependencies:
npm uni {some-package} -w {app-name} -iwr- uninstall some package for particular app and for the whole repositorynpm uni {some-package} -ws -iwr- uninstall some package for all apps and including rootpackage.json
To check consistency of packages versions across workspaces run the following command in the project root:
npm run deps:sync
After that check the changes and run npm i to install adjusted versions.
This project has pre-configured linting and formatting rules with pre-commit hook. You can execute these commands for the whole project manually:
npm run lint- run necessary code checksnpm run format- run code autoformat