- Clone the TapisUI repository
cd
into projects root directory- Run
npm run init-project
. This will build and install all of the libraries and external packages. At the end of this process, the vite library will start a local install of TapisUI at http://localhost:3000 - After the initial build you should be able to run
npm run dev
for a hot-reloading environment. - View the wiki for a dive into what's what in this repository.
npm run start
starts dev vite instance withvite.dev.config.mts
config.npm run dev
starts dev vite and watcher.js script which hot reloads sub packages when changes are found.npm run docker
will start instance likenpm run start
, but containerized.
npm run docker-prod
will build and start nginx serving built vite project.- This will run
npm run build
and copy files to nginx to server
- This will run
npm run build-dev; npm run preview-dev
to build and run vite preview locally.- Packages must be pristine for build to work. Docker might be more reproducible.
ctrl+shift+c
in browser to inspect console and find errors. If you get an invariant error then there's more than likely a package issue.
- Packages must be pristine for build to work. Docker might be more reproducible.
Much of the functionality and components used in TapisUI exist as their own NPM packages.
This enables developers to use TapisUI features and ui in their own projects. These packages are located in the lib
directory in the root of TapisUI. There are 4 main packages.
- tapisui-common - This package contains the generic components used in TapisUI as well as components specific to core Tapis services. These Tapis-specific components fetch data from Tapis services and render useful UI such as a file navigator for Tapis Systems, the Tapis Job Launcher Wizard, and more.
- tapisui-api - A package of function that make API calls directly to Tapis services
- tapisui-hooks - A package of hooks that use the tapisui-api library to fetch and mutate data as well as handle errors generated during API calls. With these hooks, developers can tie UI into the lifecycle of an API request via properties such as
isLoading
,isSuccess
,isError
, and more. - tapisui-extensions-core - A library for building extensions and plugins to TapisUI
- tapisui-extensions-devtools - Devtools when working with tapisui-extensions