{"id":17700524,"url":"https://github.com/benwinding/ngext","last_synced_at":"2025-04-14T19:03:30.721Z","repository":{"id":40658108,"uuid":"306294703","full_name":"benwinding/ngext","owner":"benwinding","description":"Better routing for Angular","archived":false,"fork":false,"pushed_at":"2022-04-30T04:50:15.000Z","size":1871,"stargazers_count":85,"open_issues_count":2,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-28T07:22:40.195Z","etag":null,"topics":["angular","framework","ngx","routing","server-side-rendering"],"latest_commit_sha":null,"homepage":"https://benwinding.github.io/ngext/","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/benwinding.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-10-22T09:58:38.000Z","updated_at":"2024-08-27T01:07:41.000Z","dependencies_parsed_at":"2022-08-10T00:10:20.957Z","dependency_job_id":null,"html_url":"https://github.com/benwinding/ngext","commit_stats":null,"previous_names":[],"tags_count":32,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benwinding%2Fngext","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benwinding%2Fngext/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benwinding%2Fngext/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benwinding%2Fngext/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/benwinding","download_url":"https://codeload.github.com/benwinding/ngext/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248943441,"owners_count":21186958,"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":["angular","framework","ngx","routing","server-side-rendering"],"created_at":"2024-10-24T17:42:27.262Z","updated_at":"2025-04-14T19:03:30.693Z","avatar_url":"https://github.com/benwinding.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"ngext\" width=\"300\" src=\"https://i.imgur.com/nK7qiGI.png\"\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\nA routing framework for angular inspired by React's \u003ca href=\"https://github.com/vercel/next.js\"\u003enext.js\u003c/a\u003e.\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003c!-- [START badges] --\u003e\n[![NPM Version](https://img.shields.io/npm/v/ngext.svg)](https://www.npmjs.com/package/ngext) \n[![License](https://img.shields.io/npm/l/ngext.svg)](https://github.com/benwinding/ngext/blob/master/LICENSE) \n[![Downloads/week](https://img.shields.io/npm/dm/ngext.svg)](https://www.npmjs.com/package/ngext) \n[![Github Issues](https://img.shields.io/github/issues/benwinding/ngext.svg)](https://github.com/benwinding/ngext)\n\u003c!-- [END badges] --\u003e\n\n\u003c/div\u003e\n\n## Introduction\n\nNgext is a tool which abstracts an angular application and drastically simplifies the routing. It has the following features: \n\n- File-based routing (no more routing modules!)\n- All lazy loaded modules generation\n- Dynamic configurations (no more static angular.json files)\n- Declarative route layouts\n- Server-side rendering, (HTML file for each page!)\n- Compatible with all your existing angular files `@NgModules`, `@Components`, ...etc\n\n## Links\n\n- [Documentation](https://benwinding.github.io/ngext/)\n\n## Get Started\n\n**Install**\n``` sh\nnpm i -g ngext\n```\n**Usage**\n```\nUsage: ngext [options] [command]\n\nOptions:\n  -v, --version      output the version number\n  -h, --help         display help for command\n\nCommands:\n  new [ProjectName]  Creates a new project\n  build              Builds the ngext app\n  export             Exports the ngext app with SSR\n  dev                Runs the ngext app locally\n  help [command]     display help for command\n```\n\n## Why use this?\n\nAngular has many elegant abstractions, `@Component`, `@Module`, `@Injectable`. However, the routing in Angular is not a simple abstraction.\n\nIn order to add a new page, Angular routing requires that you edit 3 places; add a component file, declare component in a module, and add a route to a routing module.\n\n![comparison](./docs/imgs/ngext-comparison.png)\n\nThis project attempts to encapsulate this into a single abstraction `@PageComponent`, which contains the component, dependencies and the route path which is generated from the page location. Making it easier than ever to add new pages to Angular apps.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenwinding%2Fngext","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbenwinding%2Fngext","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenwinding%2Fngext/lists"}