@ldgerrits/rogen 2.0.0-beta.1 → 2.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -20
- package/dist/bundle.cjs +12136 -8364
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
</p>
|
|
9
9
|
<h1 align="center">Rogen</h1>
|
|
10
10
|
<p align="center">
|
|
11
|
-
<strong>Rojo
|
|
11
|
+
<strong>A Rojo superset that keeps each feature's server and client code in one folder.</strong>
|
|
12
12
|
</p>
|
|
13
13
|
<p align="center">
|
|
14
|
-
Rogen
|
|
14
|
+
Rogen generates the Rojo project file from your file system, and sends each file to the right place in Studio.
|
|
15
15
|
</p>
|
|
16
16
|
<p align="center">
|
|
17
17
|
<a href="https://www.npmjs.com/package/@ldgerrits/rogen"><img alt="Beta release" src="https://img.shields.io/npm/v/@ldgerrits/rogen/next?style=flat-square&label=beta" /></a>
|
|
@@ -22,22 +22,29 @@
|
|
|
22
22
|
<a href="https://roblox-ts.com"><img alt="roblox-ts" src="https://img.shields.io/badge/roblox--ts-3178C6?style=flat-square&logo=typescript&logoColor=white" /></a>
|
|
23
23
|
</p>
|
|
24
24
|
|
|
25
|
+
<p align="center">
|
|
26
|
+
<picture>
|
|
27
|
+
<source media="(prefers-color-scheme: dark)" srcset="docs/public/readme/routing-dark.png" />
|
|
28
|
+
<img src="docs/public/readme/routing-light.png" alt="VS Code with an Inventory feature and rogen serve in its terminal, beside the Roblox Studio Explorer with each file where Rogen sent it" width="840" />
|
|
29
|
+
</picture>
|
|
30
|
+
</p>
|
|
31
|
+
|
|
25
32
|
## Why Rogen?
|
|
26
33
|
|
|
27
34
|
- **Organize by feature** — Group all code, UI, and assets for a specific feature in one place. This gives you high cohesion, better scalability, fewer merge conflicts, and features that are simple to maintain or delete.
|
|
28
|
-
- **Enforce boundaries** — Keep coupling low with a linter. Every path names its feature, so a [lint rule](https://rogen-roblox.vercel.app/docs/v2/
|
|
29
|
-
- **Multi-place games** — Write shared code once and use it in every place. When one place needs something different, add a file with the same name to that place's folder, and it
|
|
35
|
+
- **Enforce boundaries** — Keep coupling low with a linter. Every path names its feature, so a [lint rule](https://rogen-roblox.vercel.app/docs/v2/linting) can stop one feature from requiring another.
|
|
36
|
+
- **Multi-place games** — Write shared code once and use it in every place. When one place needs something different, add a file with the same name to that place's folder, and it replaces the shared one there.
|
|
30
37
|
- **Still Rojo** — Rogen runs the Rojo commands you use, with the same flags. One tool, and nothing to relearn.
|
|
31
38
|
|
|
32
39
|
## Built for agents
|
|
33
40
|
|
|
34
41
|
When an agent works on a feature, everything it needs is in one folder, from server to client. It spends its context on your task instead of searching the codebase.
|
|
35
42
|
|
|
36
|
-
Running several agents? Give each one a feature. A lint rule catches any agent that makes one feature require another, and there's no shared project file to conflict on.
|
|
43
|
+
Running several agents? Give each one a feature. A lint rule catches any agent that makes one feature require another, and there's no shared project file to conflict on. See [Working with agents](https://rogen-roblox.vercel.app/docs/v2/agents) to set them up.
|
|
37
44
|
|
|
38
|
-
##
|
|
45
|
+
## How it works
|
|
39
46
|
|
|
40
|
-
`default.rogen.json` is a Rojo project file with `routes
|
|
47
|
+
`default.rogen.json` is a Rojo project file with `routes`. Its `tree` holds what folder names can't say, such as your packages:
|
|
41
48
|
|
|
42
49
|
<!-- prettier-ignore -->
|
|
43
50
|
```json
|
|
@@ -58,22 +65,12 @@ Running several agents? Give each one a feature. A lint rule catches any agent t
|
|
|
58
65
|
}
|
|
59
66
|
```
|
|
60
67
|
|
|
61
|
-
A folder or
|
|
62
|
-
|
|
63
|
-
| In `src/Inventory` | Goes to |
|
|
64
|
-
| --------------------------------- | ---------------------------------------------- |
|
|
65
|
-
| `Server/InventoryService.luau` | `ServerScriptService/Inventory` |
|
|
66
|
-
| `Client/InventoryController.luau` | `StarterPlayer/StarterPlayerScripts/Inventory` |
|
|
67
|
-
| `Shared/InventoryTypes.luau` | `ReplicatedStorage/Shared/Inventory` |
|
|
68
|
-
| `Save@Server.luau` | `ServerScriptService/Inventory` |
|
|
69
|
-
| `InventoryConfig.luau` | `ReplicatedStorage/Shared/Inventory` |
|
|
70
|
-
|
|
71
|
-
The routes are yours to change. Add `"Gui": "StarterGui"`, and a `Gui` folder or a `@Gui` suffix sends code to StarterGui.
|
|
68
|
+
A file goes where its [folder or `@` suffix](https://rogen-roblox.vercel.app/docs/v2/core-concepts/routing) says: `Server/` and `@Server` both mean ServerScriptService. Everything else goes to `*`, and a route you add, such as `"Gui": "StarterGui"`, works the same way.
|
|
72
69
|
|
|
73
70
|
## Installation
|
|
74
71
|
|
|
75
72
|
```bash
|
|
76
|
-
rokit add ldgerrits/rogen@2.0.0-beta.
|
|
73
|
+
rokit add ldgerrits/rogen@2.0.0-beta.3
|
|
77
74
|
rogen init
|
|
78
75
|
```
|
|
79
76
|
|
|
@@ -87,7 +84,7 @@ rogen build -o game.rbxl # Update the project file, then build a place with Ro
|
|
|
87
84
|
rogen check # Print warnings and errors, and exit 1 on any
|
|
88
85
|
```
|
|
89
86
|
|
|
90
|
-
`sourcemap`, `upload`, `syncback` and `plugin` take Rojo's flags too. See the [
|
|
87
|
+
`sourcemap`, `upload`, `syncback` and `plugin` take Rojo's flags too. See the [command reference](https://rogen-roblox.vercel.app/docs/v2/commands) for every command.
|
|
91
88
|
|
|
92
89
|
## FAQ
|
|
93
90
|
|