Skip to content

elementary-swift/starter-vite

Elementary Logo

Minimal Vite Starter for ElementaryUI

A starter template for building web applications with ElementaryUI powered by Vite.

Click Use this template on GitHub or check the docs about using templates.

Elementary Demo Split Screen

Getting Started

You can use degit to scaffold a local project.

npx degit elementary-swift/starter-vite my-swift-web-app
cd my-swift-web-app

or simply clone it:

git clone https://github.com/elementary-swift/starter-vite.git my-swift-web-app

Development Environment

Option 1: Native Install

Prerequisites:

npm install

Option 2: Dev Containers

Prerequisites:

Open the project folder in your editor and run the "Dev Containers: Reopen in Container" command. The initial build may take several minutes.

Verify Installation

# Verify Swift toolchain
swift --version
# look for a compiler tag like this: (swift-6.3.1-RELEASE)

# Verify Swift SDK for WebAssembly
swift sdk list
# should contain matching entries, eg: swift-6.3.1-RELEASE_wasm and swift-6.3.1-RELEASE_wasm-embedded

Develop

# Start development server with hot reload
npm run dev

Runs an initial debug build of the WebAssembly app in the browser. Swift files are watched and trigger an instant rebuild/reload on save.

Deploying

# Build in release and bundle for deployment
npm run build

# Preview the built web app locally
npm run preview

Configuration

The template comes with a Vite config that uses Embedded Swift for release builds.

// vite.config.ts
import { defineConfig } from "vite";
import swiftWasm from "@elementary-swift/vite-plugin-swift-wasm";

export default defineConfig({
  plugins: [
    swiftWasm({
      useEmbeddedSDK: true,
    }),
  ],
});

For all configuration options, visit the plugin's homepage: vite-plugin-swift-wasm.

License

0BSD License - use it freely with no attribution required.

About

Minimal Vite starter template for ElementaryUI

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

  •  

Packages

 
 
 

Contributors