Pakowanie modułu
Moduł Orbito trafia do repozytorium jako archiwum ZIP. Pakowaniem zajmuje się omm — nie musisz utrzymywać własnego skryptu ani pamiętać, co wykluczyć z archiwum.
omm pack --dry-run # podgląd: co wejdzie do paczki
omm pack # zbuduj ZIP lokalnie
omm publish # spakuj i wyślij (patrz: omm)
Co trafia do paczki
omm pakuje moduł w jednym z dwóch trybów:
- z polem
fileswmodule.json— do archiwum wchodzą wyłącznie wskazane pliki i katalogi (module.jsondołączany jest zawsze, jakpackage.jsonw npm), - bez pola
files— cały katalog modułu minus wykluczenia.
{
"name": "moja-organizacja/inpost",
"version": "1.0.0",
"files": ["index.js", "package.json", "src/", "methods/", "pages/", "views/"]
}
Wykluczenia
Niezależnie od trybu omm nigdy nie pakuje:
| Wzorzec | Powód |
|---|---|
node_modules/ | zależności instaluje build kontenera na podstawie package.json |
.git/, .idea/, .vscode/, .claude/ | katalogi robocze i edytorów |
.env* | sekrety — sekrety aplikacji nigdy nie mogą trafić do paczki, do kontenera dostarcza je repozytorium modułów (omm secrets) |
.npmrc | sekrety (tokeny rejestru) — patrz niżej |
*.zip | wcześniej zbudowane paczki |
.gitignore, .dockerignore, .DS_Store, make-zip.sh, CLAUDE.md | pliki pomocnicze |
Prywatne paczki npm a .npmrc
.npmrc jest wykluczany domyślnie, żeby token rejestru nie wyciekł w archiwum. Paczki @orbito/* (w tym @orbito/api-lib) leżą w firmowym rejestrze npm Orbito, nie na npmjs.org. Lokalny npm install potrzebuje linii @orbito:registry=https://git.kozminski.net.pl/api/packages/orbito/npm/ — w ~/.npmrc (zob. Instalacja omm) albo w .npmrc modułu. Linia nie zawiera tokenu, więc może leżeć w katalogu modułu, ale omm i tak jej nie pakuje: build w repozytorium modułów ma własny .npmrc z tym scope. Jeśli build Dockera Twojego modułu wymaga innych, prywatnych paczek npm, dodaj go świadomie flagą --include-npmrc (omm pack --include-npmrc, omm publish --include-npmrc).
Typowa zawartość archiwum
| Plik / katalog | Wymagany | Opis |
|---|---|---|
index.js | tak | Punkt wejścia modułu — rejestracja metod, stron i hooków |
module.json | tak | Manifest paczki: kod modułu, wersja, zależności między modułami |
package.json | tak | Metadane projektu Node.js i lista zależności npm |
package-lock.json | zalecany | Powtarzalna instalacja zależności podczas builda |
src/ | jeśli używany | Kod źródłowy: modele, narzędzia itp. |
methods/ | jeśli używany | Handlery metod rejestrowanych przez Core.registerMethod() |
pages/ | jeśli używany | Definicje stron rejestrowanych przez Pages.registerPages() |
views/ | jeśli używany | Szablony widoków (np. pliki .ove, .html, .vue) |
Publikacja
Spakowaną paczkę wysyłasz tym samym narzędziem:
omm publish # wersja robocza (draft) — do testów
omm publish --release # publikacja w rejestrze — widoczna dla firm
Szczegóły komend, flag i konfiguracji: omm — CLI do publikacji.
Pakowanie ręczne (droga zapasowa)
Jeśli z jakiegoś powodu nie możesz użyć omm (np. środowisko bez dostępu do npm), archiwum zbudujesz ręcznie i wgrasz przez panel. Pamiętaj wtedy o samodzielnym utrzymaniu tych samych reguł zawartości — przede wszystkim o pominięciu node_modules, .env* i .npmrc.
zip -r nazwa-modulu.zip module.json package.json package-lock.json index.js src/ methods/ pages/ views/
Następnie:
- Zaloguj się kontem Orbito do panelu developera (
modules.orbito.pl) - Przejdź do karty swojego modułu
- Wgraj archiwum ZIP jako nową wersję
- Poczekaj na zakończenie builda obrazu Dockera (status widoczny w panelu)
- Opublikuj wersję, gdy build się powiedzie
Dlaczego lepiej omm
Przy pakowaniu ręcznym łatwo wysłać sekrety w .npmrc, przeoczyć module.json albo zapomnieć o podbiciu wersji — omm sprawdza to wszystko lokalnie, zanim cokolwiek trafi na serwer, i od razu pokazuje wynik builda.
