Svelte安装 #
一、环境准备 #
1.1 前置要求 #
| 要求 | 版本 | 说明 |
|---|---|---|
| Node.js | >= 18.0 | 运行时环境 |
| npm/pnpm/yarn | 最新版 | 包管理器 |
| VS Code | 推荐 | 代码编辑器 |
1.2 检查环境 #
bash
node -v
npm -v
二、创建项目 #
2.1 使用 Vite 创建(推荐) #
Vite 是 Svelte 官方推荐的构建工具:
bash
npm create vite@latest my-svelte-app -- --template svelte
cd my-svelte-app
npm install
npm run dev
2.2 使用 SvelteKit 创建 #
SvelteKit 是官方全栈框架:
bash
npm create svelte@latest my-sveltekit-app
cd my-sveltekit-app
npm install
npm run dev
2.3 创建选项说明 #
text
SvelteKit 创建向导选项:
? Which Svelte app template?
❯ Skeleton project 最小模板
Skeleton project (TypeScript) TypeScript最小模板
Library 库项目
? Add type checking with TypeScript?
❯ Yes, using TypeScript syntax
Yes, using JSDoc comments
No
? Select additional options
◉ Add ESLint for code linting
◉ Add Prettier for code formatting
◉ Add Playwright for browser testing
◉ Add Vitest for unit testing
2.4 使用 pnpm 创建 #
bash
pnpm create vite my-svelte-app -- --template svelte
cd my-svelte-app
pnpm install
pnpm dev
三、项目结构 #
3.1 Vite 项目结构 #
text
my-svelte-app/
├── public/
│ └── vite.svg
├── src/
│ ├── lib/
│ │ └── Counter.svelte
│ ├── app.css
│ ├── App.svelte
│ └── main.js
├── index.html
├── package.json
├── svelte.config.js
└── vite.config.js
3.2 SvelteKit 项目结构 #
text
my-sveltekit-app/
├── src/
│ ├── lib/
│ │ └── components/
│ ├── routes/
│ │ ├── +page.svelte
│ │ └── +layout.svelte
│ ├── app.html
│ └── app.css
├── static/
├── package.json
├── svelte.config.js
├── vite.config.js
└── tsconfig.json
3.3 核心文件说明 #
| 文件 | 说明 |
|---|---|
svelte.config.js |
Svelte 配置文件 |
vite.config.js |
Vite 构建配置 |
src/App.svelte |
根组件 |
src/main.js |
应用入口 |
src/routes/ |
SvelteKit 路由目录 |
四、开发工具配置 #
4.1 VS Code 插件 #
推荐安装以下插件:
text
必装插件
├── Svelte for VS Code 官方插件,语法高亮
├── Svelte 3 Snippets 代码片段
└── Svelte Intellisense 智能提示
推荐插件
├── ESLint 代码检查
├── Prettier 代码格式化
└── Error Lens 错误提示
4.2 VS Code settings.json #
json
{
"svelte.enable-ts-plugin": true,
"svelte.plugin.css.diagnostics.enable": true,
"svelte.plugin.svelte.defaultScriptLanguage": "typescript",
"[svelte]": {
"editor.defaultFormatter": "svelte.svelte-vscode",
"editor.formatOnSave": true
}
}
4.3 ESLint 配置 #
javascript
import js from '@eslint/js';
import svelte from 'eslint-plugin-svelte';
import globals from 'globals';
export default [
js.configs.recommended,
...svelte.configs['flat/recommended'],
{
languageOptions: {
globals: globals.browser
}
}
];
4.4 Prettier 配置 #
javascript
import prettier from 'prettier';
import pluginSvelte from 'prettier-plugin-svelte';
export default {
semi: true,
singleQuote: true,
tabWidth: 2,
trailingComma: 'none',
printWidth: 100,
plugins: [pluginSvelte],
overrides: [
{
files: '*.svelte',
options: {
parser: 'svelte'
}
}
]
};
五、常用命令 #
5.1 开发命令 #
bash
npm run dev
5.2 构建命令 #
bash
npm run build
5.3 预览构建结果 #
bash
npm run preview
5.4 检查代码 #
bash
npm run check
六、svelte.config.js 配置 #
6.1 基础配置 #
javascript
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
export default {
preprocess: vitePreprocess()
};
6.2 完整配置示例 #
javascript
import adapter from '@sveltejs/adapter-auto';
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
export default {
preprocess: vitePreprocess(),
kit: {
adapter: adapter(),
alias: {
$lib: 'src/lib',
$components: 'src/lib/components'
}
},
compilerOptions: {
warningFilter: (warning) => {
return !warning.code.includes('a11y');
}
}
};
七、TypeScript 支持 #
7.1 安装 TypeScript #
bash
npm install -D typescript @types/node
7.2 tsconfig.json #
json
{
"extends": "./.svelte-kit/tsconfig.json",
"compilerOptions": {
"allowJs": true,
"checkJs": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"resolveJsonModule": true,
"skipLibCheck": true,
"sourceMap": true,
"strict": true,
"moduleResolution": "bundler"
}
}
7.3 在 Svelte 中使用 TypeScript #
svelte
<script lang="ts">
interface Props {
name: string;
count?: number;
}
let { name, count = 0 }: Props = $props();
let doubled: number = $derived(count * 2);
</script>
<h1>Hello {name}!</h1>
<p>Count: {count}, Doubled: {doubled}</p>
八、常见问题 #
8.1 Node 版本问题 #
bash
nvm install 18
nvm use 18
8.2 依赖安装失败 #
bash
rm -rf node_modules package-lock.json
npm install
8.3 热更新不工作 #
javascript
import { defineConfig } from 'vite';
import { svelte } from '@sveltejs/vite-plugin-svelte';
export default defineConfig({
plugins: [svelte({
hot: true
})],
server: {
watch: {
usePolling: true
}
}
});
九、总结 #
| 步骤 | 命令 |
|---|---|
| 创建项目 | npm create vite@latest my-app -- --template svelte |
| 安装依赖 | npm install |
| 启动开发 | npm run dev |
| 构建项目 | npm run build |
开发环境搭建要点:
- 使用 Vite 创建项目,获得最佳开发体验
- 安装 VS Code 的 Svelte 插件
- 配置 ESLint 和 Prettier 保证代码质量
- 根据需要添加 TypeScript 支持
最后更新:2026-03-28