{"id":20186155,"url":"https://github.com/leolanese/react-seed","last_synced_at":"2026-04-11T01:04:05.819Z","repository":{"id":55710816,"uuid":"277824550","full_name":"leolanese/React-seed","owner":"leolanese","description":"React: react-seed using typescript, jest, prettier, ESlint, react-routers, sass, and bootstrap","archived":false,"fork":false,"pushed_at":"2022-09-03T08:33:33.000Z","size":2212,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-24T12:11:35.690Z","etag":null,"topics":["bootstrap","create-react-app","eslint","jest","prettier","react","sass","scss","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leolanese.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-07T13:30:06.000Z","updated_at":"2022-08-06T16:05:55.000Z","dependencies_parsed_at":"2022-08-15T06:31:10.293Z","dependency_job_id":null,"html_url":"https://github.com/leolanese/React-seed","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leolanese%2FReact-seed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leolanese%2FReact-seed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leolanese%2FReact-seed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leolanese%2FReact-seed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leolanese","download_url":"https://codeload.github.com/leolanese/React-seed/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241622593,"owners_count":19992501,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bootstrap","create-react-app","eslint","jest","prettier","react","sass","scss","typescript"],"created_at":"2024-11-14T03:16:10.819Z","updated_at":"2025-12-01T06:05:24.207Z","avatar_url":"https://github.com/leolanese.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## React-seed\n\n\u003e A react-seed using typescript, jest, prettier, ESlint, react-routers, sass, and bootstrap (based on create-react-app)\n\n### Deployment\n\n```js\ngit clone https://github.com/leolanese/react-seed.git\ncd react-seed npm i\n```\n\n### What this React-seed does for you in advanced\n\n1. create-react-app yarn create react-app react-seed cd react-seed \n-- At this point it will work only as a React app skeleton \n\n2. react-router-dom yarn add react-router-dom \n-- Also including few basic sematic\n`\u003cRouter\u003e` \u0026 `\u003clink /\u003e` with \u003cRouter\u003e\n\n3. This is intended to cover basic scenarios\n\n```js\nyarn add node-sass\n```\n\n4. react-bootstrap\n\n```js\nyarn add bootstrap\n```\n\n5. adding support to TS (.tsx)\n\n```js\nyarn add typescript @types/node @types/react @types/react-dom@types/jest\n```\n\n6. Removing the pre-set ESLint configuration from React project\n\n```js\n// package.json\n\"eslintConfig\": { \"extends\": \"react-app\" },\n```\n\n7. Install ESLint package\n\n```js\nnpm install eslint --save-dev\n```\n\n8. Setup ESLint\n\n```js\nnpx eslint --init\n```\n\n```js\n// adding extra rules to solve typical problem\n    \"rules\": {\n          \"react/prop-types\": 0,\n          \"react/react-in-jsx-scope\": 0,\n          \"@typescript-eslint/no-empty-function\": 0,\n          \"no-use-before-define\": \"off\",\n          \"@typescript-eslint/no-use-before-define\": [\n                \"error\"\n          ]\n    }\n```\n\n```js\n// adding extra extens\n      \"extends\": [\n          \"eslint:recommended\",\n          \"plugin:import/errors\",\n          \"plugin:react/recommended\",\n          \"plugin:jsx-a11y/recommended\",\n          \"plugin:react-hooks/recommended\",\n          \"plugin:@typescript-eslint/recommended\",\n          \"plugin:@typescript-eslint/recommended-requiring-type-checking\",\n          \"airbnb\"\n    ],\n```\n\n9. Prettier\n\n```js\nnpm install -D prettier\n```    \nNote: \nTo run prettier: `yarn format` or `npm run format`    \n\n\n```js\n// package.json\n\"format\": \"prettier --write \\\"src/**/*.{js,jsx}\\\"\"\n```\n\n10. A better version of `.gitignore`\nThis will help out of the box to avoid commit errors\n\n11. Jest\n```js\nnpm install -D jest@26.6.3 @testing-library/react@11.2.5.\n````\n\n```js\n// .babelrc\n{\n\"presets\": [\n  [\"@babel/preset-react\",{\n      \"runtime\": \"automatic\"}],\n  \"@babel/preset-env\"],\n   \"plugins\": [\"@babel/plugin-proposal-class-properties\"],\n   \"env\": {\n    \"test\": { \"presets\": [[\n         \"@babel/preset-env\", {\n               \"targets\": {\n               \"node\": \"current\"\n               }\n         }]]} }\n   }\n   ```\n\n   ```js\n   // included to the pacakge.json\n   \"test\": \"jest\",\n   \"test:watch\": \"jest --watch\"\n   ```\n\n\n-- At this point we can ue TS in our app, files are renamed as: '.tsx'\n-- to run ESlint use: `npx eslint src/*` or `npx eslint \u003ctargetFile\u003e --fix` or `npx eslint \u003ctargetFile\u003e --quiet`\n-- Note: props are `hardly-type` so using `any` type (only for demonstrations proposes)\n    \n## Jest \u0026 react-testing-library (instead of Enzyme)\n\n````\n\n### Now, run the seed !\n\n```js\n// at this point a browser will open: http://localhost:3000/\nyarn start\n```\n\n---\n\n\u003ch4\u003e Thanks \u003c/h4\u003e\n\u003ch5\u003e { 'Leo Lanese',\u003cbr\u003e\n       'Building Inspiring Responsive Reactive Solutions',\u003cbr\u003e\n       'London, UK' }\u003cbr\u003e\n\u003c/h5\u003e\n\u003ch5\u003eTwitter:\n\u003ca href=\"http://twitter.com/LeoLaneseltd\" target=\"_blank\"\u003etwitter.com/LeoLaneseltd\u003c/a\u003e\n\u003c/h5\u003e\n\u003ch5\u003ePortfolio\n\u003ca href=\"http://www.leolanese.com\" target=\"_blank\"\u003ehttp://www.leolanese.com\u003c/a\u003e\n\u003c/h5\u003e\n\u003ch5\u003eDEV.to:\n\u003ca href=\"http://www.dev.to/leolanese\" target=\"_blank\"\u003edev.to/leolanese\u003c/a\u003e\n\u003c/h5\u003e\n\u003ch5\u003eBlog:\n\u003ca href=\"http://www.leolanese.com/blog\" target=\"_blank\"\u003eleolanese.com/blog\u003c/a\u003e\n\u003c/h5\u003e\n\u003ch5\u003eQuestions / Suggestion / Recommendation ?\n\u003ca href=\"mail:to\"\u003edeveloper@leolanese.com\u003c/a\u003e\n\u003c/h5\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleolanese%2Freact-seed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleolanese%2Freact-seed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleolanese%2Freact-seed/lists"}