Ensure that you have Node (Version 18 or later) and pnpm (Version 9.x) installed.
Assuming Node has been installed, pnpm
can simply be installed via npm
:
$ npm install -g pnpm
Other ways to install pnpm
can be found in the project's documentation.
Clone the repository from Github to get a copy of the code:
$ git clone https://github.com/open-pioneer/trails-starter.git PROJECT_NAME
$ cd PROJECT_NAME
For the remainder of this document, we'll assume that the root of the repository (PROJECT_NAME
in the example) is the current working directory.
Open the project directory in an IDE of your choice. To install all the dependencies of the project run the following command:
$ pnpm install
To start the development server, execute the following command:
$ pnpm dev
# VITE v4.1.4 ready in 647 ms
#
# ➜ Local: http://localhost:5173/
# ➜ Network: use --host to expose
# ➜ press h to show help
If you use Visual Studio Code as IDE, you can alternatively use some tasks we prepared (see .vscode/tasks.json
).
The dev
script (defined in package.json
) starts Vite's development server.
When you open the address that has been printed to the console (http://localhost:5173/ in this case), you will be greeted by our test site (defined in src/index.html
).
Note
Because pnpm is our package manager, all scripts and commands should usepnpm
instead ofnpm
.
This project comes prepared with an empty application and a set of samples, all of which can be found from the test page.
The empty app is defined in src/apps/empty
(apps
is the location for application packages by convention).
Samples are grouped together in src/samples/*
.
Feel free to take a look at the sample applications, or to delete them if you don't want them in your repository.
Note
If you decide to delete the sample applications, you should also exclude them from the build. To do that, open Vite's configuration filevite.config.ts
and remove the reference tosampleSites
in the configuration of thepioneer
plugin.
The script pnpm run build
creates a production build of your project:
$ pnpm run build
# vite v4.1.4 building for production...
# ✓ 1453 modules transformed.
# Generated an empty chunk: "index".
# ../dist/www/sites/empty/index.html 0.52 kB
# ../dist/www/samples/map-sample/index.html 0.99 kB
# ../dist/www/index.html 2.38 kB
# ...
All built artifacts are placed in the dist
directory.
dist/www
contains a ready-to-use static web application that can be hosted on all common HTTP-Servers or CDNs (Content Delivery Networks), often without any additional configuration.
The contents of your production build can be configured by editing the pioneer
plugin settings in your vite.config.ts
.
You can choose which .html
sites to deploy, or which apps
to include, depending on your environment (development, production, testing) or other settings.
Vite comes with a built-in http server to serve the content of dist/www
on your local machine.
To start the server, simply run pnpm preview
after building the project.
The vite.config.ts
is designed to be customized.
It comes preconfigured with defaults to run and build the samples in this repository.
Some parts, like the pioneer
or react
plugins, should not be removed.
Most other sections, like the global log level or the settings of the pioneer
plugin, can be changed at will.
A real-world application often has to support a multitude of different environments (local development, CI, staging, production, and so on).
Because the vite.config.ts
is normal code, you can change the configuration based on rules expressed in your code.
For example, you can provide additional environment variables (e.g. backend URLs, API tokens, ...), read them in the vite.config.ts
and possibly even use them in your application's JavaScript code (be mindful of security issues: secrets should never be embedded into the output).
More information:
We recommend making yourself familiar with the contents of the empty app before you continue.
For example, you could try customizing the UI (in src/apps/empty/AppUI.tsx
).
If you start the development server and open the app in your browser, changes to the UI will become active immediately after saving the respective file.
Recommended further reading: