Next.js開発のメモ
Next.jsのlocalhostで任意のポート番号を指定する方法
いくつかの開発を同時に行なっていると、たまにPort 3000 is already in use.
と言われることがあるので、ポート番号の指定方法をメモしておく。
プロジェクトのpackage.json
のscripts
を編集する
{
︙
"scripts": {
- "dev": "next dev",
+ "dev": "next dev -p 3333",
︙
},
︙
}
このようにdev
のバリューをnext -p ポート番号
に書き換えることで任意のポート番号でローカルサーバーを起動することができる。
上記の例だと、http://localhost:3333/
のローカルサーバーが立ち上がる。
create-next-app
をnpm
で行うオプション
急にcreate-next-app
でがyarn
で行われ、yarn.lock
が生成されるようになった。
create-next-app
では、package-lock.json
を生成したいので、以下のようにオプションをつけてcreate-next-app
を行う。
% npx create-next-app prj-name --typescript --use-npm
ちなみに--typescript
オプションでTypeScript化されたプロジェクトを始めることができる。
Next.jsにTailwind CSSを導入する手順
プロジェクトのスタイリングには、Tailwind CSSを使用するので導入していく。
npm install
する
Tailwind をまず、Tailwind CSSのパッケージをnpm
でインストールする。
% npm install -D tailwindcss@latest postcss@latest autoprefixer@latest
設定ファイルの生成
tailwind.config.js
とpostcss.config.js
を作成する。-p
オプションでpostcss.config.js
を同時に生成できる。
% npx tailwindcss init -p
tailwind.config.js
とpostcss.config.js
ファイルが作成されればOK。
module.exports = {
purge: [],
darkMode: false, // or 'media' or 'class'
theme: {
extend: {},
},
variants: {
extend: {},
},
plugins: [],
}
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}
パージの設定をする
tailwind.config.js
ファイルの中で、すべてのページとコンポーネントへのパスでパージオプションを設定し、本番ビルドで未使用のスタイルをツリーシェイクできるようにする。(ツリーシェイク=実行されいないコードを削除すること)
module.exports = {
- purge: [],
+ purge: [
+ "./src/pages/**/*.{js,ts,jsx,tsx}",
+ "./src/components/**/*.{js,ts,jsx,tsx}",
+ "./src/styles/*.css",
+ ],
darkMode: false, // or 'media' or 'class'
theme: {
extend: {},
},
variants: {
extend: {},
},
plugins: [],
}
Just-in-Time Modeを有効にする
tailwind.config.js
にmode: "jit"
を追記し、Just-in-Time Modeを有効にする。
module.exports = {
+ mode: "jit",
purge: [
"./src/pages/**/*.{js,ts,jsx,tsx}",
"./src/components/**/*.{js,ts,jsx,tsx}",
"./src/styles/*.css",
],
darkMode: false, // or 'media' or 'class'
theme: {
extend: {},
},
variants: {
extend: {},
},
plugins: [],
}
global.css
でTailwindをインポートする
global.css
の冒頭に以下の3行を追記する
+ @tailwind base;
+ @tailwind components;
+ @tailwind utilities;