ViteとBootstrapで最速で開発しよう

ViteとBootstrapでセットアップ

今日は、JavaScriptでウェブ開発するにあたり、最速でコーディングに入れる環境を作ります。 現在のフロントエンド開発ではReactやVueや欠かせないですが、これを使わずにVanilla JavaScriptで開発をしたいときに有利です。 しかしnpmを使ってライブラリを管理したい場合に最適になります。 さらにBootstrapのセットアップの仕方も紹介するのでプロジェクトをセットアップしたのちにすぐにコーディングに取り掛かることができますね。 今日の環境 Viteとは ViteはVueの創生者Evan Youとそのチームが作った最新のビルドツールです。特徴としてはWebpack、Gulp、Parcelのバンドリングで使うパッケージがデベロップメント用のサーバーを起動する際(npm start)でかなり遅くなる原因を起こしていたものをすべて取り除きました。さらにコードの量が多くなるにつれ再度バンドルしなおすのでその分時間がかかっていました。 Viteの強みはその速さになります。もちろん、その引き換えにES6で書いたコードが対応していないブラウザではJavaScriptを変換してくれないので動かない可能性がある等の短所があります。 もし、ReactやVueを使いたい方はこちらの記事を参考にしてください。 Bootstrapとは Bootstrapはブートストラップといいます。 HTMLにBootstrapのクラスを入れることで魔法のようにHTMLにCSSが付けられることができます。 Bootstrapは有名なので使っておいて損はありませんね。 では早速プロジェクトの作成にかかります。 Viteのセットアップ では下記のコマンドでViteを使ってJavaScriptのプロジェクトをセットアップします。 では、cd asameshi(もしくは自身のプロジェクト名)に移動してnpm iのコマンドを実行します。 Bootstrapのセットアップ 次にBootstrapをインストールします。popperはBootstrapのドロップダウンやポップオーバー、ツールチップのポジションで使いますが、これらを使う予定がない場合はインストールしなくてOKです。 次にSaasをインストールします。 これで必要なライブラリはインストールできました。 プロジェクトのファイル構成 プロジェクトのルート直下のcounter.jsは削除してください。 次に下記のコマンドで必要なフォルダとファイルを作成します。 プロジェクトのファイル構成はこのようになります。 ※ルート直下のindex.htmlは削除することになります。 Viteのコンフィグ 先ほどのコマンドで作成したvite.config.jsファイルがテストサーバーの起動時に読み込まれるファイルになります。中身が空っぽなので、このファイルにコンフィグを書いていきます。 ここで注意しておきたいのがpathのインポートの仕方です。const path = require(‘path’)でも良いですが、package.jsonの”type”: “module”を削除する必要があります。ES6の書き方でimportを使う方がキレイだと思いますが個人の好みでどうぞ。 次に、先ほど作成したsrc/index.htmlに下記の様に書きます。デフォルトのルート直下のindex.htmlは削除してOKです。 src/index.html Bootstrapのインポート では下記のようにvite.config.jsを書きます。これでbootstrapをインポートします。 次にsrc/scss/styles.scssを開きます。 このようにbootstrapのCSSをインポートしましょう。 次に、Bootstrapで使うJavaScriptをインポートします。 src/js/main.jsに下記を追加しましょう。 もし、プラグインごとに別々にインポートしたい場合は下記のように書いてもOKです。 では、テスト用サーバーを起動するとBootstrapのCSSも読み込まれたことが確認できましたね! 実際のコードはGitHubのリポから見てください。 お疲れ様でした。

JSひろばアプリ開発1日目:プロジェクトのセットアップ

JSひろばアプリ作成まで~1日目

私がプログラミングを独学で始めたのた2020年の3月、ニューヨークでコロナがちょうど発生した時でした。 それから片手間にPythonを1年くらい学び、その後にJavaScriptを後に学び始めました。 それからチケット管理アプリをデモで作りましたが、もっと実践で使えそうなアプリを作りたいと思い、今回のJSひろばアプリを作ることに決めました。 今回はプログラミングを始めたい人の為にすべての作業をゼロから行い、コードもすべてオープンソースで公開いたします。 作業の内容 作業日 2022年12月8日 作業にかけた時間 3時間 合計作業時間 3時間 作業内容 アイディアを絞るUIをFigmaでデザインする使用するテクノロジーを決める課題点をクリアする JSひろば JSひろばという名前でアプリを進めていきます。これは、ユーザーがJSエンジンのコンソールにウェブページからインプットできて、ファンクションやWindowオブジェクトの仕組みを実際に試しながら学ぶアプリです。 下記がアプリのイメージになります。 これは無料デザインツールのFigmaを使って作りました。詳しいFigmaの使い方はこの記事で紹介しています。 当初はユーザー登録をしてユーザーが好きなコードの投稿や、お気に入りのコードを登録する機能までつけてみようかと思いましたが、機能の実装までにかなり時間がかかりそうなのでとりあえずはなしで進めます。 今回のスタック JSひろばアプリは今まで使ってきたPtyhonのウェブフレームワークのDjangoとそれをREST APIにしてくれるライブラリを使います。 フロントエンドはReactを使おうかなと思ったけどVueの方が慣れているのでそちらを使います。 Djangoだとついてくるアドミンパネルからデータのエントリーができるのでこれもプラスですね。 では、今回のスタックDjango+PostgreSQL+Vueのイメージ図です。 eval()の脅威 今回、ユーザーがウェブページからeval()のメソッドを使ってコンソールと同じようにリスポンスを返すようにしたいのが一番の目的でした。しかしeval()はセキュリティ上使わない方がよいようですね。 有名なハッキング手法のうちの一つにEVAL インジェクション(eval injection)があることを知りました。 これは、JavaScriptのデーターフォーマットをであるJSON (JavaScript Object Notation)に不正なコードを挿入し想定外の動作を誘導する攻撃手法です。特にPHPをサーバーで使っている場合は危険のようですね。 今回は下記の点からeval()を使っても良いと判断しました。 Vueのプロジェクト作成 Vueのスタックはこんな感じです。 Vue + PrimeVue(UIライブラリ)+ Vite + Pinia 今回はさくさくに動くViteのビルドツールを使います。 とりあずJavaScriptでコンソールをウェブページに実装できるところまで進めます。 UIで使うCSSライブラリはPrimeVueにします。詳しいライブラリの説明はこちらで見てください。 TailwindCSSでもよかったのですが、PrimeVueに使えそうなターミナルのコンポーネントを発見しました! まさにこれをアプリのメインのターミナルとして使いたいですね。 ではPrimeVueもインストールしましょう。詳しいPrimeVueの設定の仕方はこちらを参照してください。 とりあえずここまでできました。 ではPrimeVueのコンポーネントを使ってキレイにしましょう。 細かいインプットの制限やコードの整理はまた次回に行います。 GitHubでコードを公開しているので見てください。 GitとGitHubの使い方もYouTubeで説明しているのでよかったらどうぞ。 完成したアプリはこちらからどうぞ。

ReactをViteとTailwindでセットアップする

React Vite Tailwindcss

今までcreate-react-appでReactのプロジェクトを使ってきて遅いなと感じた方、是非このコンビネーションを試してください。今日はReactでセットアップしますがVueでも同じことができるので試してください。 ReactとViteだけのセットアップの仕方はこちらでも紹介しています。 React + TailwindCSS + Vite で夢のような最速サイトが実現できます。 Viteとは ViteはVueの創生者Evan Youとそのチームが作った最新のビルドツールです。特徴としてはWebpack、Gulp、Parcelのバンドリングで使うパッケージがデベロップメント用のサーバーを起動する際(npm start)でかなり遅くなる原因を起こしていたものをすべて取り除きました。さらにコードの量が多くなるにつれ再度バンドルしなおすのでその分時間がかかっていました。 Viteの強みはその速さになります。もちろん、その引き換えにES6で書いたコードが対応していないブラウザではJavaScriptを変換してくれないので動かない可能性がある等の短所があります。 ViteでVueのプロジェクトをビルドする方法はこちらからどうぞ。 では下記のコマンドでViteを使ってReactのプロジェクトを作成します。 TailwindCSSをインストールする では下記のコマンドからTailwindCSSをインストールします。 このinitでイニシャライゼーションが終わるとコンフィグファイルが作成されたというメッセージが表示されます。 では、tailwind.config.cjsファイルを見てみましょう。 では、下記の様にすべてのテンプレートファイルがここに含まれるようにします。 次にsrcディレクトリのindex.cssファイルに下記の行を追加しましょう。 ここで使っているVSCode若しくはお使いのテキストエディタにエラーが出た場合はpostcssのエクステンションを入れてください。 TailwindCLIでCSSをビルドさせる postcssを使用しない場合は下記の方法でTailwindCSSをビルドさせましょう。 では下記のコマンドで実際にdistribution(公開)をするためにテンプレートをCSSをスキャンさせます。 これで、Tailwindが実際に使用したCSSだけのファイルを作成してくれるので軽量なファイルに仕上がります。素晴らしいですね。 Tailwindが使えるようになった ではこれでTailwindのclassをReactのclassNameで使用してCSSがつかるようになったことを確認しましょう。 ではブラウザの検証モードで対象のHTML要素を見てみます。 できました! 実際のコードはGitHubから公開しているので見てください。 ではお疲れ様でした。

Viteで@/componentsのショートカットが使えない問題

ViteでVueのアプリを作成してコンポーネントをインポートしようとすると何か気づいたことはありませんか?

そうです。Vue CLIで作った際に使えていた@/~のショートカットが使えないです!

なので、毎回コンポーネントをインポートする際にこのように、かなり面倒になってきます。

import Component from '../../../../components/Component.vue'

//本来ならこうしたい。。。
import Component from '@/components/Component.vue'

Viteで@を使えるようにする方法

これはWebPackでついてきたショートカットを再現することで同じように@が使えるようになります。

では、Viteのコンフィグファイルを作成して、コードを書いていきます。

Viteのコンフィグファイルの書き方

Viteのコンフィグはvite.config.jsの名称でプロジェクトのルート(アプリの一番上の階層)にファイルを作成することでできます。

これで、Viteが読み込む際にこのコンフィグファイルも自動で読み込んでくれます。

import { fileURLToPath, URL } from "url";

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      "@": fileURLToPath(new URL("./src", import.meta.url)),
    },
  },
});

あとはいつも通りにコンポーネント側で@を使ってコンポーネントをインポートできるようになります。

<template>
  <img alt="Vue logo" src="./assets/logo.png" />
  <HelloWorld msg="Hello Vue 3 + Vite" />
</template>

<script>
import HelloWorld from '@/components/HelloWorld.vue'

export default {
  name: 'App',
  components: {
    HelloWorld
  }
}
</script>

Vite + AntDesign でVue3を始めよう | VueのCSSライブラリ

イントロ

皆さん、CSSライブラリは使ったことがありますか?

もちろん、自身で全てのUIデザインを一から作ることができれば素晴らしいのですが、そんな時間はありません!

CSSライブラリで有名なのはBootstrapとかTailwindがありますね。

今日は、Vueのバージョン3に対応したAnt Designを使ってみます。

Vue3に対応していないCSSライブラリ

ここで2つ注目したいCSSライブラリを紹介しておきます。

これらはまだVue3に対応していないので今後のリリースが待ち遠しいですね。

Ant Designとは

Ant DesignはReactのUIデザインのライブラリを提供していることでも知られているCSSライブラリです。

特にVueに対応したライブラリは通常のBootstrapとかと違い、データの扱いが少し楽になっているので今日、それを試してみたいと思います。

公式サイト

https://www.antdv.com/docs/vue/introduce/

Ant Designのインストール

今日はWebデベロッパーから満足度の高いViteを使って環境を作ります。

ViteはVue Cliに代わるデベロップメントツールのことです。

特にBabelというコンパイラを除いたことでめちゃちゃ早くなりました。

その代わりに古いブラウザでのサポートができなくなるとかのデメリットもありますが、それはいたしかたないでしょう。

まずはVueアプリを作ります。

npm create vite@latest

では初期状態のVueアプリが起動できることを確認しましょう。

それから、Ant Designのライブラリをインストールします。

npm install ant-design-vue@next --save

では、後からエラーが出るのでこれも入れておきましょう。

エラーが見たい人は出たら入れてください。

npm i vite-plugin-components -D
http://localhost:3000/
npm run dev

ライブラリのインポート

ではmain.jsからライブラリをグローバルにインポートします。

コンポーネントからインポートしたい人はそのやり方も可能です。

import { DatePicker } from "ant-design-vue";

app.use(DatePicker);

CSSライブラリもインポートしましょう。

カレンダーをインポートしたい場合。

import DatePicker from "ant-design-vue/lib/date-picker"; // for js

import "ant-design-vue/lib/date-picker/style/css"; // for css

Viteのデベツールのコンフィグファイルを更新して使えるようになります。

import ViteComponents, { AntDesignVueResolver } from 'vite-plugin-components';



export default {

  plugins: [

    /* ... */

    ViteComponents({

      customComponentResolvers: [AntDesignVueResolver()],

    }),

  ],

};