plop-create-remix-route
A plop generator for routes of Remix.
The package was developed to simplify the generation of the route component of the Folders for Organization configuration in Remix
Installation
This package is hosted on npm.
npm install --save-dev @soartec-lab/plop-create-remix-route
If you haven't installed plop yet, please install it together.
npm install --save-dev plop
Usage
First, load it in the plop file. Update plopfile.js as follows:
export default async function (plop) {
+ await plop.load("@soartec-lab/plop-create-remix-route");
}
Now you are ready. Let's start the command.
$ npx plop create-remix-route-component
? Which type of component do you want to create? route from URL path
? What is the URL path?
ex)
| URL you need to input | route file path | create component name |
|-----------------------|--------------------|-----------------------|
| /users | users._index | UsersRoute |
| /users/posts | users.posts._index | UsersPostsRoute |
| users/:id | users.$id | UserRoute |
? users/:id/posts/:id
✔ ++ /app/routes/users.$id.posts.$id/route.tsx
✔ ++ /app/routes/users.$id.posts.$id/route.test.tsx
Here, by selecting route from URL path as the component type to create and entering users/:id/posts/:id, we generate a route component that matches the URL.
Types of Components that Can Be Created
The component type that can be individually created are as follows:
route from URL path
If you want to create a route component from a URL path, select this type.
For example, if you enter users/:id/posts/:id, the following files will be created:
- app/routes/users.$id.posts.$id/route.tsx
- app/routes/users.$id.posts.$id/route.test.tsx
route from file path
If you want to create a route component by specifying a file path, select this type.
For example, if you enter users._index, the following files will be created:
- app/routes/users._index/route.tsx
- app/routes/users._index/route.test.tsx
feature
If you want to create a feature component instead of a route component, select this type.
For example, if you choose users._index/user-list, the following files will be created:
- app/routes/users._index/user-list.tsx
- app/routes/users._index/user-list.test.tsx
Motivation
While routes of Remix is flexible and consistent, I find the catch-up cost high. Folders for Organization is one of the aspects.
By using this library, you can create components more intuitively.
Questions
If you have any issues or ideas for feature additions, please create an issue or mention me on X. Feedback is welcome.