--- title: Common commands description: Learn about common commands you need to know to work with the mobile project. url: /docs/mobile/installation/commands --- # Common commands For sure, you don't need these commands to kickstart your project, but it's useful to know they exist for when you need them. You can set up aliases for these commands in your shell configuration file. For example, you can set up an alias for `pnpm` to `p`: ```bash title="~/.bashrc" alias p='pnpm' ``` Or, if you're using [Zsh](https://ohmyz.sh/), you can add the alias to `~/.zshrc`: ```bash title="~/.zshrc" alias p='pnpm' ``` Then run `source ~/.bashrc` or `source ~/.zshrc` to apply the changes. You can now use `p` instead of `pnpm` in your terminal. For example, `p i` instead of `pnpm install`. To inject environment variables into the command you run, prefix it with `with-env`: ```bash pnpm with-env ``` For example, `pnpm with-env pnpm build` will run `pnpm build` with the environment variables injected. Some commands, like `pnpm dev`, automatically inject the environment variables for you. ## Installing dependencies To install the dependencies, run: ```bash pnpm install ``` ## Starting development server Start development server by running: ```bash pnpm dev ``` ## Building project To build the project (including all apps and packages), run: ```bash pnpm build ``` ## Building specific app/package To build a specific app/package, run: ```bash pnpm turbo build --filter= ``` ## Cleaning project To clean the project, run: ```bash pnpm clean ``` Then, reinstall the dependencies: ```bash pnpm install ``` ## Formatting code To check for formatting errors using Prettier, run: ```bash pnpm format ``` To fix formatting errors using Prettier, run: ```bash pnpm format:fix ``` ## Linting code To check for linting errors using ESLint, run: ```bash pnpm lint ``` To fix linting errors using ESLint, run: ```bash pnpm lint:fix ``` ## Typechecking To typecheck the code using TypeScript for any type errors, run: ```bash pnpm typecheck ``` ## Adding UI components To add a new web component, run: ```bash pnpm --filter @turbostarter/ui-web ui:add ``` This command will add and export a new component to `@turbostarter/ui-web` package. To add a new mobile component, run: ```bash pnpm --filter @turbostarter/ui-mobile ui:add ``` This command will add and export a new component to `@turbostarter/ui-mobile` package. ## Services commands To run the services containers locally, you need to have [Docker](https://www.docker.com/) installed on your machine. You can always use the cloud-hosted solution (e.g. [Neon](https://neon.tech/), [Turso](https://turso.tech/) for database) for your projects. We have a few commands to help you manage the services containers (for local development). ### Starting containers To start the services containers, run: ```bash pnpm services:start ``` It will run all the services containers. You can check their configs in `docker-compose.yml`. ### Setting up services To setup all the services, run: ```bash pnpm services:setup ``` It will start all the services containers and run necessary setup steps. ### Stopping containers To stop the services containers, run: ```bash pnpm services:stop ``` ### Displaying status To check the status and logs of the services containers, run: ```bash pnpm services:status ``` ### Displaying logs To display the logs of the services containers, run: ```bash pnpm services:logs ``` ### Database commands We have a few commands to help you manage the database leveraging [Drizzle CLI](https://orm.drizzle.team/kit-docs/commands). #### Generating migrations To generate a new migration, run: ```bash pnpm with-env turbo db:generate ``` It will create a new migration `.sql` file in the `packages/db/migrations` folder. #### Running migrations To run the migrations against the db, run: ```bash pnpm with-env pnpm --filter @turbostarter/db db:migrate ``` It will apply all the pending migrations. #### Pushing changes directly Make sure you know what you're doing before pushing changes directly to the db. To push changes directly to the db, run: ```bash pnpm with-env pnpm --filter @turbostarter/db db:push ``` It lets you push your schema changes directly to the database and omit managing SQL migration files. #### Checking database status To check the status of the database, run: ```bash pnpm with-env pnpm --filter @turbostarter/db db:status ``` It will display the status of the applied migrations and the pending ones. ```bash Applied migrations: - 0000_cooing_vargas - 0001_curious_wallflower - 0002_good_vertigo - 0003_peaceful_devos - 0004_fat_mad_thinker - 0005_yummy_bucky - 0006_glorious_vargas Pending migrations: - 0007_nebulous_havok ``` #### Resetting database To reset the database, run: ```bash pnpm with-env pnpm --filter @turbostarter/db db:reset ``` It will reset the database to the initial state. #### Seeding database To seed the database with some example data (for development purposes), run: ```bash pnpm with-env turbo db:seed ``` It will populate your database with some example data. #### Checking database To check the database schema consistency, run: ```bash pnpm with-env pnpm --filter @turbostarter/db db:check ``` #### Studying database To study the database schema in the browser, run: ```bash pnpm with-env pnpm --filter @turbostarter/db db:studio ``` This will start the Studio on [https://local.drizzle.studio](https://local.drizzle.studio). ## Tests commands ### Running tests To run the tests, run: ```bash pnpm test ``` This will run all the tests in the project using Turbo tasks. As it leverages Turbo caching, it's [recommended](/docs/web/tests/unit#configuration) to run it in your CI/CD pipeline. ### Running tests projects To run tests for all Vitest [Test Projects](https://vitest.dev/guide/projects), run: ```bash pnpm test:projects ``` This will run all the tests in the project using Vitest. ### Watching tests To watch the tests, run: ```bash pnpm test:projects:watch ``` This will watch the tests for all [Test Projects](https://vitest.dev/guide/projects) and run them automatically when you make changes. ### Generating code coverage To generate code coverage report, run: ```bash pnpm turbo test:coverage ``` This will generate a code coverage report in the `coverage` directory under `tooling/vitest` package. ### Viewing code coverage To preview the code coverage report in the browser, run: ```bash pnpm turbo test:coverage:view ``` This will launch the report's `.html` file in your default browser.