Hvordan bidra - Vue ⭐
Vi er veldig happy med at du vurderer å bidra! Om du er usikker på noe som helst, ta kontakt. Eller bare send inn den buggen eller PRen uansett. Verste som skjer er at vi høflig ber deg endre på noe. Vi setter pris på alle hyggelige bidrag!
📝 Forutsetninger
- nodejs 18.19
- Kunnskap om Sass (SCSS) og CSS.
- Forståelse av BEM-navnekonvensjoner som designsystemet følger.
- Noen skal ha designet komponenten i Figma (Krever innlogging og tilgang).
Aller først må du konfigurere git-hooks slik at scripts kjøres ved commits, som for eksempel et script som kopierer innhold fra readme og contributing til dokumentasjonsnettsiden.
Sett opp git hooks:
git config core.hooksPath scripts/git-hooks
Lerna
Punkt er et monorepo og bruker lerna
. Det betyr at alle kommandoer kjører
fra repoets rot, og ikke i subrepoene.
Et utdrag fra rot-package.json viser noen scripts som er satt opp for å forenkle utvikling i dette subrepoet:
"scripts": {
"build-vue": "npx lerna run build --scope=@oslokommune/punkt-vue",
"build-vue-app": "npx lerna run build-app --scope=@oslokommune/punkt-vue",
"dev-vue": "npx lerna run dev --scope=@oslokommune/punkt-vue",
}
Figma
Sørg for at noen har designet komponenten i Figma (Krever innlogging og tilgang).
🛠️ Gjør arbeidet
Filstruktur
Under components lag en folder med komponentnavnet. Lag to filer, en for
vue-komponenten og en for eksport av komponenten. Prefixen Pkt
skal ikke
være med på navngivingen, men skal navngis i komponenten og eksporteres
med det.
vue/
└── src/
└── components/
└── alert/
├── index.js
└── Alert.vue
Husk å legge til komponenten i index.js som ligger i components-mappen.
// components/index.js
import Alert from "./Alert.vue";
import { use, registerComponent } from "../../utils/plugins";
const Plugin = {
install(Vue) {
registerComponent(Vue, Alert);
},
};
use(Plugin);
export default Plugin;
export { Alert as PktAlert };
Lokal utviklingsserver
For å teste komponenten din kan du legge den til i views
og router
, kjør følgende (fra root):
$ npm run dev-vue
SCSS
Det enkleste er å starte og utvikle komponenten som en normal vue-komponent,
med SCSS i <style>
. Når du er fornøyd flytt SCSS til punkt-css
:
css/
└── src/
└── scss/
└── components/
└── _alert.scss
Fra mappen css
kjør:
$ npm run build-package
Da skal CSS’en være tilgjengelig for deg i vue
🤝 Lag PR
Når du er klar for en PR skriv din GitHub-message som sier hva som er gjort, og evt issue nummer.
Vi bruker Conventional Commits for å beskrive commits gjennom noen regler. Ingen fare om du ikke følger den, vi tar en gjennomgang og evt justerer 😎.
fix(vue): #NR Rett feil på alert-komponenten # med issuenummer
fix(vue): Rett feil på alert-komponenten # patcher en bug i koden (patch i Semantic Versioning)
feat(vue): Legg til funksjonalitet # ny funksjonalitet i koden (minor i Semantic Versioning)
feat(vue)!: Legg til funksjonalitet og endre eksisterende # breaking change i koden (major i Semantic Versioning)
docs: Endre dokumentasjon # Endring i dokumentasjon
🔢 Publisering og versjonering
Vi tar oss av publisering av pakken og versjonering.
Punkt bruker Semantic Versioning 2.0.0 for versjonering av pakkene.