🔢Integrace6 min čteníAktualizováno: 3. 11. 2026

Jak zobrazit verzi aplikace z package.json

Zobrazte verzi aplikace z package.json ve Vite, Reactu, Angularu nebo Next.js. Ukážeme si ukázky zdrojových kódů a také jak přidat poznámky k vydání.

👨‍💻
Roman
AboutTheApp

Shrnutí a kontext

Verzi aplikace zobrazíte tak, že ji při buildu převezmete z package.json a vykreslíte v patičce, v nastavení nebo na obrazovce O aplikaci. Ve Vite to obstará volba define, v Next.js pole env v next.config a v Angularu import pole version. V článku najdete ukázky pro jednotlivá prostředí.

1. Proč má být verze vidět přímo v aplikaci

Verze aplikace v uživatelském rozhraní odpovídá na první otázku podpory: jakou verzi máte? Když číslo verze není nikde vidět, zjistí ho jen DevOps z nasazení nebo vývojář z kódu. Podpora pak řeší nahlášenou chybu, aniž ví, jestli už není v novější verzi opravená.

Obvyklá místa pro umístění verze jsou patička aplikace, obrazovka Nastavení, položka Nápověda → O aplikaci a chybová stránka. U interních nástrojů stačí patička, u aplikací pro zákazníky se hodí i obrazovka O aplikaci s kontaktem na podporu.

2. Odkud verzi vzít

Číslo verze má mít jeden zdroj, ze kterého ho build převezme. U JavaScriptových projektů je to pole version v package.json, které mění příkaz npm version nebo nástroj na vydávání verzí. Jaké schéma čísel zvolit popisuje článek Verzování aplikací.

Do klientského kódu nepatří celý package.json. Obsahuje seznam závislostí a skriptů, které uživatel aplikace vidět nemusí. Proto build vkládá jen samotný řetězec verze, jak ukazují příklady níže.

ZdrojPříkladKdy se hodí
package.json1.4.2Výchozí volba pro webové aplikace
Git tagv1.4.2Verzi určuje tag vydání v CI/CD
Číslo sestavení z CI1.4.2 (381)Podpora potřebuje rozlišit sestavení stejné verze
Hash commitu1.4.2 (a1b2c3d)Interní a testovací prostředí

3. Vite: React, Vue i Svelte

Ve Vite verzi z package.json vložíte volbou "define" ve vite.config.ts. Vite při buildu nahradí každý výskyt __APP_VERSION__ v kódu řetězcem verze, takže do balíčku se nedostane nic dalšího. Proměnnou npm_package_version nastaví npm, pnpm i Yarn při spuštění skriptu, tedy při npm run dev a npm run build.

V TypeScriptu ještě do src/vite-env.d.ts přidejte řádek declare const __APP_VERSION__: string;. V komponentě pak verzi použijete jako běžnou konstantu, například <footer>Verze {__APP_VERSION__}</footer>.

vite.config.ts
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";

export default defineConfig({
  plugins: [react()],
  define: {
    __APP_VERSION__: JSON.stringify(process.env.npm_package_version),
  },
});

4. Next.js

V Next.js verzi předáte polem "env" v next.config.ts. Next.js hodnoty z "env" vloží do kódu při buildu, takže process.env.NEXT_PUBLIC_APP_VERSION funguje v serverových i klientských komponentách. Import package.json v konfiguraci se do klientského balíčku nedostane, konfigurace běží jen při buildu.

next.config.ts
import type { NextConfig } from "next";
import pkg from "./package.json";

const nextConfig: NextConfig = {
  env: {
    NEXT_PUBLIC_APP_VERSION: pkg.version,
  },
};

export default nextConfig;

5. Angular

V Angularu načtete verzi z package.json pojmenovaným importem pole "version". V tsconfig.json k tomu musí být zapnutá volba "resolveJsonModule". Výchozí builder Angularu (esbuild) z JSON souboru ponechá v balíčku jen importované pole, ne celý package.json.

src/app/app-footer.ts
import { Component } from "@angular/core";
import { version } from "../../package.json";

@Component({
  selector: "app-footer",
  template: `<footer>Verze {{ version }}</footer>`,
})
export class AppFooter {
  readonly version = version;
}

6. Číslo sestavení a commit z CI/CD

Číslo sestavení nebo hash commitu do package.json nepatří, zná je až CI/CD pipeline. Předejte je při buildu jako proměnnou prostředí. Ve Vite se do kódu dostanou proměnné s předponou VITE_, například VITE_BUILD_NUMBER=$GITHUB_RUN_NUMBER npm run build v GitHub Actions, a v kódu je přečtete z import.meta.env.VITE_BUILD_NUMBER. V Next.js má stejnou roli předpona NEXT_PUBLIC_.

Když verzi berete z Git tagu, odstraňte z ní předponu v. Číslo 1.4.2 a tag v1.4.2 jsou pro uživatele totéž, pro porovnání verzí v nástrojích ale ne.

7. Verze s poznámkami k vydání v AboutTheApp

Samotné číslo verze neřekne, co se v ní změnilo. Poznámky k vydání přitom bývají roztroušené v commitech, pull requestech a tascích, kam se uživatel nebo podpora nedostane. About box z AboutTheApp má variantu vzhledu "Verze a novinky", která ukáže verzi a po rozbalení také poznámky k vydání.

Variantu vzhledu "Nápověda a podpora" ocení podpora: obsahuje tlačítko "Zkopírovat informace o aplikaci" pro zkopírování názvu a verze do schránky, které uživatel vloží do hlášení chyby. Obecný postup vložení About boxu do vaší aplikace popisuje návod pro React.

Verze se musí přesně shodovat

About box ukáže poznámky k vydání, jen když verze z atributu "version" existuje u produktu přesně ve stejném znění, včetně velikosti písmen, a je veřejná, nebo je privátní a About box je odemčený odemykacím kódem. Verze 1.4.2 v aplikaci a v1.4.2 v katalogu se považují za dvě různé verze. Nová verze je ve výchozím stavu privátní, pokud ji chcete z CI/CD vytvořit jako veřejnou, použijte atribut "visibility" "public".

  1. 1

    Založte produkt

    V AboutTheApp vytvořte produkt nebo otevřete existující a na jeho kartě klikněte na "Integrovat".

  2. 2

    Zvolte variantu vzhledu a zkopírujte její kód pro vložení

    Ve volbě "Varianta" vyberte "Verze a novinky". Panel připraví skript a element about-the-app s aliasem vaší aplikace, který vložíte do zdrojového kódu vaší aplikace.

  3. 3

    Doplňte atribut version

    Do zdrojového kódu elementu přidejte atribut "version" s hodnotou z buildu, například version={__APP_VERSION__} ve Vite nebo version={process.env.NEXT_PUBLIC_APP_VERSION} v Next.js.

  4. 4

    Zapisujte verze s poznámkami

    Každou vydanou verzi zapište do katalogu verzí produktu v dashboardu nebo pomocí CI/CD voláním POST /integrations/versions. Pro GitHub Actions je připravena akce Report release to AboutTheApp.

AppFooter.tsx
export function AppFooter() {
  return <about-the-app alias="my-app" variant="version" version={__APP_VERSION__} />;
}

Časté otázky

Jak zobrazit verzi z package.json v Reactu?

Ve Vite přidejte do vite.config.ts volbu define s __APP_VERSION__: JSON.stringify(process.env.npm_package_version) a v komponentě vykreslete {__APP_VERSION__}. V Next.js předejte verzi polem env v next.config.ts a čtěte ji z process.env.NEXT_PUBLIC_APP_VERSION.

Je bezpečné importovat package.json do frontendu?

Celý soubor ne. Výchozí import package.json může do klientského balíčku přenést seznam závislostí a skriptů. Bezpečnější je vložit při buildu jen řetězec verze přes define nebo env, případně použít pojmenovaný import pole version, který Vite i esbuild zredukují na jedinou hodnotu.

Jak zjistit verzi aplikace v Electronu?

V hlavním procesu ji vrátí app.getVersion(), která čte pole version z package.json aplikace. Do okna aplikace ji předejte přes preload skript nebo IPC, protože renderer k objektu app přímý přístup nemá.

Proč About box u verze píše, že nejsou dostupné poznámky k vydání?

Verze z atributu version buď v katalogu produktu není, nebo se liší znění (například 1.4.2 a v1.4.2), nebo je verze privátní a návštěvník nemá odemykací kód. Číslo verze About box ukáže i tak, poznámky jen při přesné shodě s veřejnou verzí, nebo s privátní verzí v About boxu odemčeném odemykacím kódem.

Zjistí AboutTheApp verzi aplikace sám?

Nezjistí. Bez atributu version ukazuje About box verzi zapsanou v AboutTheApp, kterou zapíšete v dashboardu nebo z CI/CD. Když chcete vždy zobrazit verzi, která v aplikaci skutečně běží, předejte ji v atributu version.

Ve zkratce

Verzi aplikace převezměte při buildu z package.json a vykreslete ji tam, kde ji uživatel i podpora očekává. S About boxem z AboutTheApp k ní uživatel uvidí i poznámky k vydání a spousty dalších informací, pokud mu je zpřístupníte.

AboutTheApp

Chcete u verze ukázat i co je nového?

Založte si zdarma produkt v AboutTheApp, zapisujte verze s poznámkami k vydání a zobrazte je přímo v aplikaci.