{"id":21206614,"url":"https://github.com/oncomouse/react-redux-webpack-boilerplate","last_synced_at":"2026-04-28T09:34:03.798Z","repository":{"id":149628438,"uuid":"135596613","full_name":"oncomouse/react-redux-webpack-boilerplate","owner":"oncomouse","description":"DHSI React-Redux Boilerplate","archived":false,"fork":false,"pushed_at":"2018-06-22T16:06:00.000Z","size":1672,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-21T15:48:37.314Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oncomouse.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-31T14:43:56.000Z","updated_at":"2018-06-22T14:12:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"0f9b9d28-2b52-491d-87d0-4f55b1fdea35","html_url":"https://github.com/oncomouse/react-redux-webpack-boilerplate","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/oncomouse%2Freact-redux-webpack-boilerplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oncomouse%2Freact-redux-webpack-boilerplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oncomouse%2Freact-redux-webpack-boilerplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oncomouse%2Freact-redux-webpack-boilerplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oncomouse","download_url":"https://codeload.github.com/oncomouse/react-redux-webpack-boilerplate/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243658270,"owners_count":20326467,"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":[],"created_at":"2024-11-20T20:56:14.350Z","updated_at":"2025-12-30T12:57:47.810Z","avatar_url":"https://github.com/oncomouse.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# react-redux-webpack-boilerplate\n\nThis is my starter app for [React](https://reactjs.org/), [Redux](https://redux.js.org/), and [Webpack](https://webpack.js.org/). It includes [redux-thunk](https://github.com/reduxjs/redux-thunk) for side effects, including calls to APIs. It also includes support for a [persistent](https://github.com/rt2zz/redux-persist) store. The development server supports hot reloading.\n\nThe starter includes [Ramda](https://ramdajs.org) for functional programming. ES2015+ features are available via [Babel](https://babeljs.io).\n\nFor stylesheets, [node-sass](https://github.com/sass/node-sass) and a variety of [PostCSS](http://postcss.org/) plugins are installed. You can use [CSS modules](https://github.com/css-modules/css-modules) for styling components.\n\nTesting is supported through the [Mocha](https://mochajs.org/) framework (with help from [zinserjan/mocha-webpack](https://github.com/zinserjan/mocha-webpack/)). [Chai](http://chaijs.com/) (for assertions), [Sinon](http://sinonjs.org/) (for spies, mocks, and stubs), and [Enzyme](http://airbnb.io/enzyme/) (for React testing) are all also provided. Check the `.spec.js` files in `components/`, \t`containers/`, and `reducers/` to see some examples to get started writing unit tests.\n\nCoverage testing is supplied by [Istanbul](https://istanbul.js.org/). Code quality is checked by [ESLint](https://eslint.org/) and [stylelint](https://stylelint.io/).\n\n## Installation\n\nRun `npm install` or `yarn install` to install packages.\n\n## Developing\n\nThere are a number of scripts already available for supporting development:\n\n* **Start Development Server** – `npm run start`\n* **Build Production Code** – `npm run build`\n* **Unit Testing** – `npm run mocha`\n\t* `npm run mocha:watch` to live update unit tests\n* **Coverage Testing** – `npm run cover`\n* **Checking Code Quality** – `npm run lint`\n\t* `npm run lint -- --fix` to fix errors automatically\n\nRunning `npm run test` will check code quality and run unit tests.\n\n## Customizing\n\nIn `package.json`, set the key `title` to the name of the application. This will set the cache key for redux persistence and the HTML title for the landing page (which you can change using [react-helmet](https://github.com/nfl/react-helmet), if you install it).\n\n## Deploying\n\nRun `yarn build` or `npm run build` to build an optimized, production version of your app. It will be in the `build/` directory.\n\nIf you add a `homepage` key to `package.json` and set it equal to the root URL of your application, the path will be correct when you are ready to deploy.\n\n## Debugging\n\nAlso: `env NODE_ENV=production webpack --json \u003e stats.json` and upload to [Webpack Visualizer](https://chrisbateman.github.io/webpack-visualizer/)\n\n## Conventions\n\nSome notes on the thought process behind this boilerplate:\n\n### File Extensions for JSX Files\n\nThough this repo uses the [airbnb/javascript](https://github.com/airbnb/javascript) style guide, the rule regarding files containing JSX having to have the `.jsx` extension is loosened (see [discussion of this issue here](https://github.com/airbnb/javascript)). I do, however, continue to use `.jsx` extensions for components and pages, as the purpose of those files is display. Things like unit tests, the router, and the project's main file are all `.js` extensions to indicate their primary function, which is not display. So, to summarize, *use `.jsx` for files in `components/` and `pages/`; use `.js` everywhere else*.\n\n### Directory Aliases For Tests\n\n`webpack.config.js` aliases `app/` as `APP` and `test/` as `TEST`, so that you could type:\n\n~~~\nimport Home from 'APP/pages/Home';\n~~~\n\nHowever, by convention, code in the `app/` directory uses relative imports for non-library code (ie. what you write yourself). These aliases, instead, are conveniences for writing tests, whose directory structure means writing *long* relative import statements for non-library code. So, to summarize, *only use `APP` and `TEST` import aliases in code in the `test/` directory.*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foncomouse%2Freact-redux-webpack-boilerplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foncomouse%2Freact-redux-webpack-boilerplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foncomouse%2Freact-redux-webpack-boilerplate/lists"}