{"id":14976539,"url":"https://github.com/noderaider/modular","last_synced_at":"2025-10-27T20:32:12.557Z","repository":{"id":56824036,"uuid":"71404290","full_name":"noderaider/modular","owner":"noderaider","description":"Scaffold a react monorepo and its component parts.","archived":false,"fork":false,"pushed_at":"2017-01-03T23:50:29.000Z","size":454,"stargazers_count":12,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-05T06:48:14.562Z","etag":null,"topics":["boilerplate","cli","companion","create-react-app","css-modules","ecosystem","hot-reloads","modular","react","scaffold","webpack2","yarn"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/noderaider.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-10-19T22:23:31.000Z","updated_at":"2023-06-26T15:36:23.000Z","dependencies_parsed_at":"2022-08-26T13:30:16.240Z","dependency_job_id":null,"html_url":"https://github.com/noderaider/modular","commit_stats":null,"previous_names":["noderaider/scaffold"],"tags_count":53,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noderaider%2Fmodular","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noderaider%2Fmodular/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noderaider%2Fmodular/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noderaider%2Fmodular/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/noderaider","download_url":"https://codeload.github.com/noderaider/modular/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238553303,"owners_count":19491405,"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":["boilerplate","cli","companion","create-react-app","css-modules","ecosystem","hot-reloads","modular","react","scaffold","webpack2","yarn"],"created_at":"2024-09-24T13:54:02.662Z","updated_at":"2025-10-27T20:32:07.121Z","avatar_url":"https://github.com/noderaider.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![NPM](https://raw.githubusercontent.com/noderaider/modular/master/public/png/modular.png)](https://github.com/noderaider/modular)\n\n**An unofficial companion ecosystem to [`create-react-app`](https://npmjs.com/package/create-react-app)**\n\n[![Build Status](https://travis-ci.org/noderaider/modular.svg?branch=master)](https://travis-ci.org/noderaider/modular)\n[![codecov](https://codecov.io/gh/noderaider/modular/branch/master/graph/badge.svg)](https://codecov.io/gh/noderaider/modular)\n\n### What is this?\n\nOften react applications can grow extremely large. `create-react-app` is a very innovative step forward in react apps, encouraging keeping them small by abstracting the build into a separate module (`react-scripts`). This 'managed' build strategy has many upsides, with the primary drawback being that you cannot modify the build process as easily. `@raider/modular` is an ecosystem of companion tools to `create-react-app` to continue in its footsteps, targeting the areas that it does not hit such as CSS modules support, and doing it in such a way that it will encourage project stacks to grow horizontally (many modules) instead of vertically.\n\n### Tenets\n\n* Every module is its own npm package.\n* Every module has built in hot reloading support to work in conjunction with a `create-react-app` downstream project.\n* Fast yarn installation support with fallback to npm if yarn is not installed.\n* Works on every platform.\n\n### PROGRESS\n\n\n- [x] [`npm i -g create-css-module`](https://npmjs.com/package/create-css-module) [:scroll:](https://github.com/noderaider/modular/tree/master/packages/create-css-module)\n  - create a hot reloading CSS modules library.\n- [x] [`npm i -g create-umd-module`](https://npmjs.com/package/create-umd-module) [:scroll:](https://github.com/noderaider/modular/tree/master/packages/create-umd-module)\n  - create a lightweight ES2015 module with rollupjs and tree shaking.\n  - hot reloads with simple babel watch.\n  - good for generic universal libraries (non-React)\n- [x] [`npm i -g create-cli-module`](https://npmjs.com/package/create-cli-module)  [:scroll:](https://github.com/noderaider/modular/tree/master/packages/create-cli-module)\n  - create a server module meant to be called from CLI / API.\n- [x] [`npm i -g create-sass-module`](https://npmjs.com/package/create-sass-module) [:scroll:](https://github.com/noderaider/modular/tree/master/packages/create-sass-module)\n  - create a hot reloading sass library.\n- [x] [`npm i -g create-component-module`](https://npmjs.com/package/create-component-module) [:scroll:](https://github.com/noderaider/modular/tree/master/packages/create-component-module)\n  - create a hot reloading React component module.\n  - No `react` / `react-dom` dependencies, components are created functionally via a factory interface:\n\n```bash\ncreate-component-module react-foo-bar [-t/--with-test-module]\n```\n\n**After publishing / linking, you may use the component from your downstream react app like so:**\n\n```js\nimport React from 'react'\nimport reactFooBar from 'react-foo-bar'\n\n// Create the component\nconst FooBar = reactFooBar(React)\n\nexport default (props) =\u003e \u003cFooBar foo=\"bar\" /\u003e\n```\n\n\u003csup\u003eNote: Exporting modules as factories sidesteps a wide range of issues causing multiple instances of React in your downstream app.\u003c/sup\u003e\n\n- [ ] [`npm i -g create-jest-module`](https://npmjs.com/package/create-jest-module) [:scroll:](https://github.com/noderaider/modular/tree/master/packages/create-jest-module)\n  - create a standalone jest test module capable of end-to-end testing another module.\n  - IMO it is better to unit test components (react ones particularly) from a separate module. No longer must `react` / `react-dom` be included as npm dependencies of your module.\n- [ ] [`npm i -g create-express-module`](https://npmjs.com/package/create-express-module) [:scroll:](https://github.com/noderaider/modular/tree/master/packages/create-express-module)\n  - create an express server module.\n- [ ] [`npm i -g create-koa-module`](https://npmjs.com/package/create-koa-module) [:scroll:](https://github.com/noderaider/modular/tree/master/packages/create-koa-module)\n  - create a koa server module.\n- [ ] [`npm i -g create-proxy-module`](https://npmjs.com/package/create-proxy-module) [:scroll:](https://github.com/noderaider/modular/tree/master/packages/create-proxy-module)\n  - create a reverse proxy.\n- [ ] [`npm i -g create-deploy-module`](https://npmjs.com/package/create-deploy-module) [:scroll:](https://github.com/noderaider/modular/tree/master/packages/create-deploy-module)\n  - create a server deployment module.\n- [ ] [`npm i -g create-react-repo`](https://npmjs.com/package/create-react-repo) [:scroll:](https://github.com/noderaider/modular/tree/master/packages/create-react-repo)\n  - create a lerna monorepo with all modular commands (and create-react-app) integrated.\n\n## Utils\n\n- [x] [`npm i -g @raider/install`](https://npmjs.com/package/@raider/install) [:scroll:](https://github.com/noderaider/modular/tree/master/packages/install)\n  - CLI / API component to run NPM install on a package.\n  - Uses yarn if detected and falls back to npm.\n- [x] [`npm i -g @raider/which`](https://npmjs.com/package/@raider/which) [:scroll:](https://github.com/noderaider/modular/tree/master/packages/which)\n  - CLI / API component to run closs-platform `which` command.\n- [x] [`npm i -g @raider/cross`](https://npmjs.com/package/@raider/cross) [:scroll:](https://github.com/noderaider/modular/tree/master/packages/cross)\n  - CLI / API component to upgrade a project / repos line endings to unix style safely and recursively.\n\n### Acknowledgements\n\nSpecial thanks to Facebook for innovations with `create-react-app`, without it this project would not be possible.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoderaider%2Fmodular","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnoderaider%2Fmodular","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoderaider%2Fmodular/lists"}