Code Monkey home page Code Monkey logo

create-full-stack's People

Contributors

dependabot[bot] avatar nedrocks avatar tiagob avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

create-full-stack's Issues

Generate .vscode/launch.json

Example for web and apollo backend. Only include what's needed

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "chrome",
      "request": "launch",
      "name": "Chrome",
      "url": "http://localhost:3000",
      "webRoot": "${workspaceFolder}/client/src",
      "sourceMapPathOverrides": {
        "webpack:///client/src/*": "${webRoot}/*"
      }
    },
    {
      "type": "node",
      "request": "attach",
      "name": "Node: Nodemon",
      "processId": "${command:PickProcess}",
      "restart": true,
      "protocol": "inspector"
    }
  ]
}

Macros in TS templates

A lot of duplicate code across templates. It would be ideal to simplify this with TS macros inside these templates.
microsoft/TypeScript#4892

I spoke with John Boggs. He's interested in this and is down to make his own project to tackle this use case

Becomes a bigger problem with additional templates like chat, maps, pictures which are just added in

Update create-full-stack on every run or use a separate script like CRA

Publish to NPM

Need to take create-full-stack and eslint-config-full-stack

Local development initialization script

Include everything a new dev needs to get started.

Ex. install postgres, sync-db, buildNodeBackend etc.

Include in README. Should this be in TS or bash? If it's in bash could install the latest yarn. If it's in TS we have access to a better scripting language and the only thing we're missing is yarn installation (is this true?) which could be included in the README

npm publish from build/

Right now it's including everything in npm pack under packages/create-full-stack. It only needs to include what tsc compiles into build/ and any templates.

It needs to copy over the templates directory or make templates packages (#49)

Using files in npm package.json like CRA does is confusing because it's in packages/create-full-stack and packages/create-full-stack/build so the filter gets applied twice (ex. if templates is in files it doesn't get included in npm pack)
https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/package.json#L22-L23 (this isn't needed because they moved them to packages)

Is there a way to always publish from build/? Could lerna handle this? Trying to overwrite the publish script in package.json with yarn --cwd build/ publish doesn't work

Dockerize local development

Support 2 paths:

  1. Any code that can be modified runs locally. Any static code (ex. hasura) runs in docker. Move Postgres to docker so no one needs to install Postgres.
  • Dependencies: yarn, node, docker (always) expo-cli, firebase cli, pulumi cli etc. (conditional)
  • Check dependencies in the script
  1. Fewer dependencies. Everything runs in docker
  • Dependencies: yarn, node, docker
  • Docker containers have debug tools (ex. vim)

Is path 2 useful? How many dependencies does it really reduce?

Make linting consistent across all templates

Something like what's in root but for all template packages. Some of the template packages use prettier instead of eslint.

  "scripts": {
    "lint": "eslint src/**.ts"
  },
  "husky": {
    "hooks": {
      "pre-commit": "lint-staged"
    }
  },
  "lint-staged": {
    "src/**.{ts,tsx}": "eslint --fix"
  }

Should lint-staged include git add? It's some examples.

May want to use prettier on files outside of .ts and .tsx. An example would be .md

Refactor template directory structure

New structure. Use copySync on the auth level to the root of the packages. Exclude not flagged clients (ex. for --web exclude mobile/).

  • templates/
    • apollo-server-express/
      • firebase-auth/
        • packages/
          • backend/
          • web/
          • mobile/
      • no-auth/
        • packages/
          • backend/
          • web/
          • mobile/
    • hasura/
      • firebase-auth/
        • hasura/
        • packages/
          • firebase-functions/
          • web/
          • mobile/
      • no-auth/
        • hasura/
        • packages/
          • web/
          • mobile/
    • firestore/
      • firebase-auth/
        • packages/
          • web/
          • mobile/
      • no-auth/
        • packages/
          • web/
          • mobile/

Also, rename backend/ to server/ for apollo-server-express/?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.