@ionic-sveltekit/create
Version:
CLI tool to create a new SvelteKit project with Ionic UI components
190 lines (138 loc) • 5.24 kB
Markdown
# @ionic-sveltekit/create
A command-line tool for creating new projects using SvelteKit and Ionic Framework.
## Overview
This CLI tool simplifies the process of setting up a new SvelteKit project with Ionic UI components for web and mobile applications. It provides an interactive setup process with sensible defaults while allowing advanced configuration via command-line options.
## Installation
You can use the tool directly via npx without installing it:
```bash
npx @ionic-sveltekit/create my-app
```
Or you can install it globally:
```bash
npm install -g @ionic-sveltekit/create
```
## Usage
### Interactive Mode
The easiest way to use the tool is in interactive mode:
```bash
npx @ionic-sveltekit/create
```
This will prompt you to enter:
- Project name
- TypeScript preferences
- Code quality tools (ESLint, Prettier)
- Testing frameworks (Playwright, Vitest)
- Ionic components options (Ionicons, Capacitor)
### Non-Interactive Mode
You can skip the prompts by using the `--defaults` flag:
```bash
npx @ionic-sveltekit/create my-app --defaults
```
This will create a project with default settings.
### Command-Line Options
You can customize your project by providing command-line options:
```bash
npx @ionic-sveltekit/create my-app [options]
```
#### Available Options
| Option | Description | Default |
| --- | --- | --- |
| `--path <path>` | Location to install (project name is appended) | `.` |
| `--types <type>` | Add type checking with TypeScript | `typescript` |
| `--eslint [boolean]` | Add ESLint for code linting | `true` |
| `--prettier [boolean]` | Add Prettier for code formatting | `true` |
| `--playwright [boolean]` | Add Playwright for browser testing | `false` |
| `--vitest [boolean]` | Add Vitest for unit testing | `false` |
| `--ionicons [boolean]` | Include Ionic icon library | `true` |
| `--capacitor [boolean]` | Install dependencies for Capacitor | `false` |
| `--verbose` | Show detailed output for troubleshooting | `false` |
| `--defaults` | Skip all prompts and use default values | `false` |
### Examples
Create a new project with default settings:
```bash
npx @ionic-sveltekit/create my-app --defaults
```
Create a project with specific options:
```bash
npx @ionic-sveltekit/create my-app --types typescript --eslint --prettier --capacitor
```
Create a JavaScript-only project:
```bash
npx @ionic-sveltekit/create my-app --types none
```
Create a project with TypeScript using JSDoc comments:
```bash
npx @ionic-sveltekit/create my-app --types checkjs
```
## Project Structure
The created project will have the following structure:
```
my-app/
├── src/
│ ├── lib/
│ │ ├── components/ # Reusable Svelte components
│ │ └── images/ # Project images
│ ├── routes/ # SvelteKit routes
│ └── theme/ # Ionic theme files
├── static/ # Static assets
├── .env # Environment variables
├── svelte.config.js # SvelteKit configuration
└── package.json # Project dependencies
```
If Capacitor is enabled, a `capacitor/` directory and `capacitor.config.json|ts` file will also be created.
## Features
- **SvelteKit Integration**: Creates a SvelteKit project with Ionic UI components
- **TypeScript Support**: Full TypeScript support with optional JS+JSDoc alternative
- **Code Quality**: Optional ESLint and Prettier integration
- **Testing**: Optional Playwright and Vitest setup
- **Mobile Development**: Optional Capacitor integration for mobile app deployment
- **Ionic Components**: Pre-configured Ionic theme and components
## Next Steps After Creation
After creating your project:
1. Navigate to the project directory: `cd my-app`
2. Start the development server: `npm run dev -- --open`
### For Capacitor Projects
If you enabled Capacitor:
1. Install platform-specific packages:
```bash
npm i @capacitor/android
# and/or
npm i @capacitor/ios
```
2. Add platforms:
```bash
npx cap add android
# and/or
npx cap add ios
```
3. Build your app:
```bash
npm run build
```
4. Sync the build with Capacitor:
```bash
npx cap sync
```
5. Open the project in the native IDE:
```bash
npx cap open android
# or
npx cap open ios
```
## Hot Module Replacement with Capacitor
- For TypeScript projects: Use the `-hmr` flag with Capacitor commands
- For JavaScript projects: Rename `_server` to `server` in `capacitor.config.json`
## Resources
- [TypeScript Documentation](https://www.typescriptlang.org/tsconfig#checkJs)
- [ESLint Plugin for Svelte](https://sveltejs.github.io/eslint-plugin-svelte/)
- [Prettier Documentation](https://prettier.io/docs/en/options.html)
- [Playwright Documentation](https://playwright.dev)
- [Vitest Documentation](https://vitest.dev)
- [Capacitor Documentation](https://capacitorjs.com/docs/getting-started)
- [Ionic Icons Documentation](https://ionic.io/ionicons)
- [PWA Documentation](https://github.com/vite-pwa/sveltekit)
## Issues and Support
If you encounter any issues or need help, please report them at:
[GitHub Repository](https://github.com/ionic-sveltekit/create/issues)
## License
[MIT](LICENSE)