coryhouse / coryhouse/reactjsconsulting

Development Environment

Open
#3 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
374
Forks
33
PR merge metrics
No merged PRs in 30d

Description

# Development Environment

Discuss options and configure development environment for session
- [ ] Install [Node](http://nodejs.org), [Git](http://git-scm.com).
- [ ] Git overview
- [ ] Select a JS editor
- [ ] [VS Code](https://code.visualstudio.com)
- [ ] [Webstorm](https://www.jetbrains.com/webstorm/)
- [ ] [Codesandbox](https://codesandbox.io)
- [ ] [Demoboard](https://frontarm.com/demoboard/)
- [ ] [Stackblitz](https://stackblitz.com)
- [ ] [ReKit](http://rekit.js.org)
- [ ] Dev environment
- [ ] Install [react dev tools](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi?hl=en)
- [ ] [Review dev env options](https://www.javascriptstuff.com/react-starter-projects/)
- [ ] Install [create-react-app](https://github.com/facebookincubator/create-react-app) and explore
- [ ] Add recommended extensions
- [ ] [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)
- [ ] [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) - Add this setting: `"editor.formatOnSave": true`
- [ ] [Glean](https://marketplace.visualstudio.com/items?itemName=wix.glean)
- [ ] [Quokka](https://marketplace.visualstudio.com/items?itemName=WallabyJs.quokka-vscode)
- [ ] [React Code Snippets](https://marketplace.visualstudio.com/items?itemName=xabikos.ReactSnippets)
- [ ] [Snapshot Tools](https://marketplace.visualstudio.com/items?itemName=asvetliakov.snapshot-tools)
- [ ] Add [storybook](https://storybook.js.org) for creating components and documenting component states (fosters reuse by documenting what exists, [clarifies prop behaviors](https://medium.com/redmart-engineering/how-we-use-storybook-for-documentation-and-code-reviews-550a522543f1), supports automated UI testing)
- [ ] Configure proxy in package.json to avoid CORS calls and shorten paths when working with create-react-app
- [ ] [JS vs TypeScript - My take](https://twitter.com/housecor/status/1082458332693176320)
- [ ] [Use npm-check-updates](https://www.npmjs.com/package/npm-check-updates) to check for updates on CI on some cadence and generate report. Consider breaking CI build for outdated deps. Also consider [outdated](https://docs.npmjs.com/cli/outdated).
- [ ] Use [license-checker](https://www.npmjs.com/package/license-checker) to check and disallow certain licenses

## Monorepo tools

See #170

## Debugging in VS Code

This adds [integrated VSCode debugging support](https://code.visualstudio.com/docs/editor/debugging) to our project.

To use:
1. Install [Debugger for Chrome](https://marketplace.visualstudio.com/items?itemName=msjsdiag.debugger-for-chrome)
2. [Click the gutter to set a breakpoint (a red dot will appear)](https://www.dropbox.com/s/ajekfydl2cdo6yh/Screenshot%202019-12-12%2007.37.01.png?dl=0)
3. [Click the bug to open the debug panel](https://www.dropbox.com/s/gjmjvjbkyk7nhub/Screenshot%202019-12-12%2007.37.22.png?dl=0)
4. Click play to start debugging in Chrome (make sure Chrome is selected in the dropdown next to the play button). This will open a new browser window and pause on your breakpoint.
5. [You can hover over any variables to see their values](https://www.dropbox.com/s/zceb9ezf6c5bhd6/Screenshot%202019-12-12%2007.39.43.png?dl=0). The variables window on the left is handy too.
6. Click on [Debug console](https://www.dropbox.com/s/hbsv63cjubhmpzf/Screenshot%202019-12-12%2007.41.32.png?dl=0) to display a console where you can run code while debugged.

This is a handy way to debug because:
1. You don't have to change the code (to add a debugger or console statement for instance) to debug.
2. You can set [conditional breakpoints](https://code.visualstudio.com/docs/editor/debugging#_conditional-breakpoints) and [logpoints](https://code.visualstudio.com/blogs/2018/07/12/introducing-logpoints-and-auto-attach#_introducing-logpoints).

## Recommended ESLint rules

- [ ] [eslint-plugin-promise](https://github.com/xjamundx/eslint-plugin-promise)
- [ ] See Cypress section in Automated testing for Cypress related plugins

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.