カテゴリー
【Svelte Framework入門】Viteを使って素早くSvelteアプリ開発環境を始めてみる
※ 当ページには【広告/PR】を含む場合があります。
2022/07/19
2024/07/14
ViteからSvelte&Typescriptのプロジェクトを一発導入
>=14.18.0
svelte-vite
$ yarn create vite
yarn create v1.22.19
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "create-vite@5.3.0" with binaries:
- create-vite
- cva
✔ Project name: … svelte-vite
✔ Select a framework: › Svelte
✔ Select a variant: › TypeScript
Scaffolding project in /***/svelte-vite...
Done. Now run:
cd svelte-vite
yarn
yarn dev
create vite
#👇Svelte/Javascripプロジェクトで開始
$ yarn create vite svelte-vite --template svelte
#👇Svelte/Typescripプロジェクトで開始
$ yarn create vite svelte-vite --template svelte-ts
svelte-ts
$ cd svelte-vite
$ yarn install
$ yarn dev
5173
services:
#...中略
app:
ports:
#👇追加
- "5173:5173"
#...以下略
0.0.0.0
{
//...中略
"scripts": {
"dev": "vite --host 0.0.0.0",
//...以下略
$ yarn dev
vite
VITE v3.0.1 ready in 616 ms
➜ Local: http://localhost:5173/
➜ Network: http://192.168.0.2:5173/
--port
$ vite --host 0.0.0.0 --port [開放先のポート番号]
$ vite --help
#もしくは
$ ./node_modules/.bin/vite --help
ViteをSass対応にする
Sass
autoprefixer
$ yarn add sass postcss autoprefixer -D
src/app.css
app.scss
:root {
font-family: Inter, Avenir, Helvetica, Arial, sans-serif;
font-size: 16px;
line-height: 24px;
font-weight: 400;
color-scheme: light dark;
color: rgba(255, 255, 255, 0.87);
background-color: #242424;
font-synthesis: none;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-webkit-text-size-adjust: 100%;
@media (prefers-color-scheme: light) {
color: #213547;
background-color: #ffffff;
}
}
body {
margin: 0;
display: flex;
place-items: center;
min-width: 320px;
min-height: 100vh;
a {
font-weight: 500;
color: #646cff;
text-decoration: inherit;
&:hover {
color: #535bf2;
@media (prefers-color-scheme: light) { color: #747bff; }
}
}
}
#app {
max-width: 1280px;
margin: 0 auto;
padding: 2rem;
text-align: center;
h1 {
font-size: 3.2em;
line-height: 1.1;
}
.card { padding: 2em; }
button {
border-radius: 8px;
border: 1px solid transparent;
padding: 0.6em 1.2em;
font-size: 1em;
font-weight: 500;
font-family: inherit;
background-color: #1a1a1a;
cursor: pointer;
transition: border-color 0.25s;
&:hover { border-color: #646cff; }
&:focus, &:focus-visible { outline: 4px auto -webkit-focus-ring-color; }
@media (prefers-color-scheme: light) { background-color: #f9f9f9; }
}
}
src/main.ts
app.scss
//import './app.css'
//👇こちらに書き換え
import './app.scss'
import App from './App.svelte'
const app = new App({
target: document.getElementById('app')!,
})
export default app
postcss.config.js
import autoprefixer from 'autoprefixer';
export default {
plugins:[autoprefixer]
}
vite.config.ts
import { defineConfig } from 'vite';
import { svelte } from '@sveltejs/vite-plugin-svelte';
//👇追記
import postcss from './postcss.config.js';
export default defineConfig({
plugins: [svelte()],
//👇追記
css: {postcss}
})
まとめ
記事を書いた人
ナンデモ系エンジニア
主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。
カテゴリー