docs(modules): update module file structure to use src/ layout
- move db.js, api.js and register-server.js under src/ with updated naming conventions - add explanation of src/ as the module code directory with index.js as public entry point - document index.js pattern for re-exporting register, createTables and dropTables from src/ - add package.json files field example to restrict published assets
This commit is contained in:
+25
-8
@@ -224,14 +224,31 @@ Toute variable requise par le module doit être déclarée dans `manifest.envVar
|
|||||||
├── package.json # name: "@zen/module-blog", main: "./index.js"
|
├── package.json # name: "@zen/module-blog", main: "./index.js"
|
||||||
├── README.md # documente les env vars et la configuration
|
├── README.md # documente les env vars et la configuration
|
||||||
├── index.js # exporte manifest, register, createTables, dropTables
|
├── index.js # exporte manifest, register, createTables, dropTables
|
||||||
├── db.js # createTables/dropTables
|
└── src/
|
||||||
├── register-server.js # imports déclencheurs (chargé par register())
|
├── db.server.js # createTables/dropTables
|
||||||
├── api.js # routes API (registerApiRoutes)
|
├── register-server.js # imports déclencheurs (chargé par register())
|
||||||
├── admin/
|
├── api.server.js # routes API (registerApiRoutes)
|
||||||
│ ├── BlogAdminPage.client.js # registerPage + composant
|
├── admin/
|
||||||
│ └── widgets/... # registerWidgetFetcher + registerWidget
|
│ ├── BlogAdminPage.client.js # registerPage + composant
|
||||||
└── public/
|
│ └── widgets/... # registerWidgetFetcher + registerWidget
|
||||||
└── BlogPublicPage.js # registerPublicModulePage
|
└── public/
|
||||||
|
└── BlogPublicPage.js # registerPublicModulePage
|
||||||
|
```
|
||||||
|
|
||||||
|
Tout le code du module vit dans `src/`. Seul `index.js` reste à la racine — c'est le point d'entrée public lu par le core via `main: "./index.js"`. Il importe depuis `./src/` :
|
||||||
|
|
||||||
|
```js
|
||||||
|
// index.js
|
||||||
|
export async function register() {
|
||||||
|
await import('./src/register-server.js');
|
||||||
|
}
|
||||||
|
export { createTables, dropTables } from './src/db.server.js';
|
||||||
|
```
|
||||||
|
|
||||||
|
Le champ `files` dans `package.json` publie uniquement `index.js`, `src/`, `README.md` et `LICENSE` :
|
||||||
|
|
||||||
|
```json
|
||||||
|
"files": ["index.js", "src", "README.md", "LICENSE"]
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
Reference in New Issue
Block a user