3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JavaScriptAdvent Calendar 2024

Day 4

ViteのVanillaテンプレートでブログをはじめてみる

Posted at

はじめに

ViteのVanillaのTemplateを使い、

VanillaのHTML、Css、JavascriptでBlogを作りたくなったので作ってみる。

※正直なところ、無理にVite使わずに、、普通に静的ファイルを配置・公開するのが一番手っ取り早いのでご注意ください🥲

事前準備

・Node.jsインストール済

(パッケージマネージャはnpmを想定)

(Viteは現時点のv6.0.2を想定)

プロジェクトの構成

下記コマンドでテンプレートを用いる。

VanillaのJavaScriptの場合

npm create vite@latest myblog -- --template vanilla

VanillaのTypeScriptの場合

npm create vite@latest myblog -- --template vanilla-ts

恐らく、下記のような構成でtemplateが出来上がる(node_modulesは省略)

│  .gitignore
│  index.html
│  package.json
│
├─public
│      略
│
└─src
        counter.js
        javascript.svg
        main.js
        style.css

これをはMenu(index.html)以外の投稿はすべて/posts/の配下に来るような下記の構成にする

│   .gitignore
│   index.html
│   main.css
│   main.js
│   vite.config.js
│
├─public
│      略
│
└───posts
        aboutme.html
        dummypost.html
        policy.html

vite.config.js(vite.config.ts)の設定

vite.configをなにも設定しないと/posts/配下のhtmlはエントリポイントに含まれていない。

これを含まれるようにするため、

vite.configを下記のように

エントリーネームをファイル名が一致するような形式で設定する

import { defineConfig } from 'vite';
import { resolve, relative } from 'path';
import { globSync } from 'glob';

const posts = globSync('posts/*.html')
  .reduce((acc, curr) => {
    const key = relative('posts', curr).replace('.html', '')
    acc[key] = curr
    return acc
  }, {})
posts['main'] = resolve(__dirname, 'index.html');

export default defineConfig({
  build: {
    rollupOptions: {
      input: posts
    },
  },
});

参考

※重要な箇所はこれで終わり!!

残りは自分の好きななようにカスタマイズ

私は、Menu画面を下記のような感じでレスポンシブ対応

Headerもそれっぽく作ってDarkModeに対応

Footerもそれっぽく作ってみる

スクリーンショット ViteのVanillaテンプレートでブログをはじめてみよう_1.jpg

スクリーンショット ViteのVanillaテンプレートでブログをはじめてみよう_2.jpg

スクリーンショット ViteのVanillaテンプレートでブログをはじめてみよう_3.jpg

スクリーンショット ViteのVanillaテンプレートでブログをはじめてみよう_4.jpg

完成!

・GitHubPagesにデプロイする

(商用利用不可なので商用利用の場合は、ほかのサービスにデプロイしてください)

デモURL

Lighthouseのスコア

ViteのVanillaテンプレートでブログをはじめてみよう_5.jpg

今回の成果物

ソース

まとめ

マイブームで1周回ってVanillaのJavascriptやCss、HTMLが楽しいので記事にしました。

最近だと、マークダウンでBlogを作るならAstroもおすすめです。

今回は、なんとなくViteを使いたかったので記事にしましたが、

デプロイ時のMinifyやキャッシュ対策なども、

ほかのライブラリを使っても、できるのでViteにこだわる必要はありません🫡

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?