0.1.2 • Published 4 years ago

cfs-pulumi-expo v0.1.2

Weekly downloads
4
License
MIT
Repository
github
Last release
4 years ago

Create Full Stack

Set up a TypeScript full stack with one command.

Create Full Stack works on macOS, and Linux. If something doesn’t work, please file an issue.

Looking for co-contributors. If this project interests you, email me@tiagobandeira.com

Philosophy

  • Single language (TypeScript)
    • Minimize context switching
  • Static typing everywhere (DB to UI across APIs)
    • Compile time bugs instead of runtime bugs
  • Scales
    • In terms of requests, features, and complexity (engineers on the project)
  • Most popular tools in class
    • Better support and fewer edge cases
  • Simplicity over infinite flexibility
    • Prefer simpler solutions to the 90% use case over supporting the 1% use case

Setup

Install Yarn

Follow instructions at https://classic.yarnpkg.com/en/docs/install

Or with Homebrew run:

brew install yarn

CFS support for npm will be added when npm v7 is stable, which contains the required workspaces feature.

Run

yarn create full-stack my-full-stack

Node v12.10.0 or later is required. You can use n to switch Node versions.

Help

% yarn create-full-stack --help
Usage: create-full-stack <project-directory> [options]

Options:
  -V, --version              output the version number
  -t, --template <template>  specify a template for the created project
  -h, --help                 display help for command

Setup VSCode (recommended IDE/Editor)

The config files (.vscode/) are included which formats on save and includes recommended extensions.

Generated project notes

Check specific package READMEs for setup configuration and commands.

Code generation

Repo uses graphql-code-generator. Client React components for GraphQL queries and mutations are automatically generated via the typescript-react-apollo plugin from the *.graphql files. The backend relies on type generation via the typescript-resolvers plugin. This code is automatically generated when running commands from the workspace root.

Troubleshooting

EADDRINUSE, Address already in use

Kill all node processes.

killall node

Hooks can only be called inside the body of a function component

React in both packages/mobile/package.json and packages/web/package.json need to be the same version since they're shared in Yarn Workspaces (unless you add nohoist).

Auth0 login hangs on Android virtual device

Your Android virtual device (AVD) must use Android 11. expo/issues/9845

FatalError: relation \"todos\" already exists

Reset your docker Postgres volume. This wipes any existing data.

docker rm <project name>_postgres_1
docker volume rm <project name>_db_data

pulumi:providers: no resource plugin found in the workspace or on your \$PATH, install the plugin

This can occur locally or in continuous deployment (CD) with GitHub actions.

If locally, run the command in the error message to install the plugin.

If on GitHub actions, you must setup and deploy the production stack locally first before GitHub actions can deploy. pulumi/issues/2097

To deploy the production stack run:

cd packages/pulumi-aws
pulumi stack select production
pulumi up

Something is already running on port 3000

Check which service is running on the port.

sudo lsof -i tcp:3000

Kill it (ex. node)

pkill node