Source Control
In addition to the standard directory layout of typical Java applications, Vaadin projects also include various files and folders related to the frontend tooling. A typical Vaadin application has a directory layout with something like the following content:
Source code
node_modules/ (1)
src/
βββ main (2)
βββ frontend (3)
βββ generated/
βββ index.html (4)
βββ java
βββ resources
βββ META-INF
βββ resources (5)
βββ test/ (6)
target/
package.json (7)
package-lock.json (8)
pom.xml (9)
vite.config.ts (10)
vite.generated.ts (11)
tsconfig.json (12)
types.d.ts (13)-
A folder that caches the frontend modules upon which the project depends.
-
Application sources. This folder is auto-generated based on the contents of
package.jsonandpackage-lock.json. -
Frontend resources, like TypeScript, and JavaScript files, are placed in this folder.
-
index.htmlis an auto-generated file that defines the outermost structure of the application. -
Stylesheets are placed in this folder, for loading with the
@StyleSheetannotation. -
Test sources.
-
package.jsondefines the version ranges of the frontend dependencies. -
package-lock.jsondefines the exact versions of the frontend dependencies used in this project. -
Project and configuration details used by Maven to build the project.
-
Can optionally be used to customize Vite configuration.
-
An auto-generated file containing the Vite configuration needed for all applications.
-
An auto-generated file that defines the configuration for compiling TypeScript code in the project, when needed.
-
An auto-generated file that defines the TypeScript type definitions used in the project.
|
Note
|
Project Content May Vary
The directory layout shown here may vary depending on the projectβs configuration.
For example, a project using |
The following .gitignore file lists the files and folders that should be excluded from a typical Vaadin project.
Source code
.gitignore
.gitignore/target/
.gradle
build/
!**/src/main/**/target/
!**/src/test/**/target/
!**/src/main/**/build/
!**/src/test/**/build/
.DS_Store
# The following files are generated/updated by vaadin-maven-plugin or vaadin-gradle-plugin
node_modules/
src/main/frontend/generated/
pnpmfile.js
.npmrc
webpack.generated.js
vite.generated.ts
# Browser drivers for local integration tests
drivers/
# Error screenshots generated by TestBench for failed integration tests
error-screenshots/
# Eclipse and STS
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
# IntelliJ IDEA
.idea
*.iws
*.iml
*.ipr
out/
!**/src/main/**/out/
!**/src/test/**/out/
# NetBeans
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
# VS Code
.vscode/
# Maven wrapper
.mvn/
mvnw
# The following are auto-generated by Vaadin if missing, but they should be added to source control if customized.
tsconfig.json
types.d.ts
index.html9E89021E-38BA-4ECE-9EA6-8B6AC2DB9C2B