0
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?

More than 1 year has passed since last update.

WSL2+dockerにNext.js/MUI/Typescriptな開発環境をサクッと作る

Posted at

はじめに

開発や検証でNext.jsとMaterial UIを組み合わせた環境を構築することが多いので、
その中で私が行き着いた現時点で最も簡単に環境構築する方法を紹介する。

特にNext.js/MUI/Typescript環境の構築は、MUI V5のexemplesの中にMUI V4にはなかった
Next.js (TypeScript version)を見つけてから劇的に構築が楽になったので、
Official examplesに気づいてない人向けの記事と言っても差し支えないかもしれない。

目次

実行環境

  • Windows10
  • WSL2:Ubuntu20.04LTS
  • VSCode(Remote Development導入済み)

WSL2+docker環境にVSCodeのdevcontainerで開発用コンテナを作る

  1. VSCodeでWSLのUbuntuに接続する
    image.png

  2. ターミナルで作業用のフォルダを作成し、作成したフォルダーを開く
    image.png
    image.png
    こんな感じになってたら成功
    image.png

  3. ↓の赤枠の部分をクリックして開いたメニューから下記の順に選択
    Reopen in Container
    Node.js & Typescript
    Node.jsのバージョン(例では14を選択)
    追加でインストールしたいもの(例では選択無しだが、Git等の必要なものはここで選択しておくと楽)
    image.png
    image.png
    image.png
    image.png

  4. しばらく待つと下記の状態になって環境構築完了
    ・作成されたコンテナに接続されている
    ・.devcontainerというフォルダが作成されている
    image.png

devcontainerについての詳しい説明は割愛するが、
コンテナへの接続解除、再接続は下記のようにすればOK

接続解除(Reopen Folder in WSL)
image.png

再接続(Reopen in COntainer)
image.png
image.png

Material UIのOfficial examplesを利用して開発環境を作る

構築した環境でターミナルを開き、下記のコマンドを実行する

curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=3  material-ui-master/examples/nextjs-with-typescript

インストール&起動

yarn
yarn dev

※やっていることはexemplesのReadmeと同じですが
 カレントディレクトリ直下にソース展開するためにstripの値を2→3に変更してます

最終形

image.png

タイトルから話がそれるので詳細は割愛しますが
.devcontainerリポジトリに含めてしまえばコンテナ環境も共有して開発できますし、
.devcontainer内のdevcontainer.json Dockerfileに手を入れれば環境のアレンジも簡単です。

0
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
0
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?