v2へのアップグレード
要件
Next.js アップグレード手順
v2 にアップグレードするには、前の手順に必ず従ってください。
App ディレクトリのセットアップ
Next.js 13 では、新しい app/
ディレクトリ構造が導入されました。デフォルトでは、サーバーコンポーネントを使用します。NextUI コンポーネントは React フックを使用するため、ビルド時に use client;
を追加しました。これにより、React サーバーコンポーネント (RSC) に直接インポートできます。
インストール
Next.js プロジェクトで、以下のいずれかのコマンドを実行して NextUI をインストールします。
npm i @nextui-org/react framer-motion
ホイストされた依存関係のセットアップ
注意: この手順は、pnpm を使用してインストールする場合のみ必要です。他のパッケージマネージャーを使用して NextUI をインストールする場合は、この手順をスキップできます。
pnpm を使用している場合は、パッケージをルートの node_modules
にホイストするために、.npmrc
ファイルに次の行を追加する必要があります。
public-hoist-pattern[]=*@nextui-org/*
.npmrc
ファイルを変更した後、依存関係が正しくインストールされていることを確認するために、再度 pnpm install
を実行する必要があります。
Tailwind CSS のセットアップ
NextUI は Tailwind CSS をベースに構築されているため、まず Tailwind CSS をインストールする必要があります。Tailwind CSS のインストールについては、公式のインストールガイドに従ってください。次に、tailwind.config.js
ファイルに次のコードを追加する必要があります。
// tailwind.config.jsconst { nextui } = require("@nextui-org/react");/** @type {import('tailwindcss').Config} */module.exports = {content: [// ...// make sure it's pointing to the ROOT node_module"./node_modules/@nextui-org/theme/dist/**/*.{js,ts,jsx,tsx}"],theme: {extend: {},},darkMode: "class",plugins: [nextui()]}
プロバイダーのセットアップ
app/providers.tsx
または app/providers.jsx
(存在しない場合は作成してください) に移動し、コンポーネントを NextUIProvider
でラップします。
// app/providers.tsx'use client'import {NextUIProvider} from '@nextui-org/react'export function Providers({children}: { children: React.ReactNode }) {return (<NextUIProvider>{children}</NextUIProvider>)}
ルートへのプロバイダーの追加
次に、root
レイアウトページに移動し、それを NextUIProvider
でラップします。
// app/layout.tsximport {Providers} from "./providers";export default function RootLayout({children}: { children: React.ReactNode }) {return (<html lang="en" className='dark'><body><Providers>{children}</Providers></body></html>);}
注意: NextUI は自動的に
light
とdark
の 2 つのテーマをアプリケーションに追加します。html
タグにdark
/light
クラスを追加することで、どちらかを使用できます。詳細については、テーマのドキュメントをご覧ください。
NextUI コンポーネントの使用
これで、use client;
ディレクティブを使用しなくても、任意の NextUI コンポーネントをサーバーコンポーネントに直接インポートできます。
// app/page.tsximport {Button} from '@nextui-org/button'export default function Page() {return (<div><Button>Click me</Button></div>)}
重要 🚨: コンポーネントは、
@nextui-org/react
からではなく、個別のパッケージからインポートする必要があることに注意してください。
Pages ディレクトリのセットアップ
インストール
Next.js プロジェクトで、以下のいずれかのコマンドを実行して NextUI をインストールします。
npm i @nextui-org/react framer-motion
ホイストされた依存関係のセットアップ
注意: この手順は、pnpm を使用してインストールする場合のみ必要です。他のパッケージマネージャーを使用して NextUI をインストールする場合は、この手順をスキップできます。
pnpm を使用している場合は、パッケージをルートの node_modules
にホイストするために、.npmrc
ファイルに次の行を追加する必要があります。
public-hoist-pattern[]=*@nextui-org/*
.npmrc
ファイルを変更した後、依存関係が正しくインストールされていることを確認するために、再度 pnpm install
を実行する必要があります。
Tailwind CSS のセットアップ
NextUI は Tailwind CSS をベースに構築されているため、まず Tailwind CSS をインストールする必要があります。Tailwind CSS のインストールについては、公式のインストールガイドに従ってください。次に、tailwind.config.js
ファイルに次のコードを追加する必要があります。
// tailwind.config.jsconst { nextui } = require("@nextui-org/react");/** @type {import('tailwindcss').Config} */module.exports = {content: [// ...// make sure it's pointing to the ROOT node_module"./node_modules/@nextui-org/theme/dist/**/*.{js,ts,jsx,tsx}"],theme: {extend: {},},darkMode: "class",plugins: [nextui()]}
プロバイダーのセットアップ
pages/_app.js
または pages/_app.tsx
(存在しない場合は作成してください) に移動し、コンポーネントを NextUIProvider
でラップします。
// pages/_app.jsimport {NextUIProvider} from '@nextui-org/react'function MyApp({ Component, pageProps }) {return (<NextUIProvider><Component {...pageProps} /></NextUIProvider>)}export default MyApp;
NextUI コンポーネントの使用
これで、任意の NextUI コンポーネントを好きな場所にインポートできます。
import {Button} from '@nextui-org/react'export default function Page() {return (<div><Button>Click me</Button></div>)}
React のアップグレード手順
React バージョンのアップグレード
NextUI v2 では React 18 以降が必要です。React をアップグレードするには、次のコマンドを実行します。
npm i react@latest react-dom@latest
Framer motion のインストール
v2 では、NextUI は依存関係として framer-motion
を必要とするようになりました。両方をインストールするには、次のコマンドを使用します。
npm i framer-motion
ホイストされた依存関係のセットアップ
注意: この手順は、pnpm を使用してインストールする場合のみ必要です。他のパッケージマネージャーを使用して NextUI をインストールする場合は、この手順をスキップできます。
pnpm を使用している場合は、パッケージをルートの node_modules
にホイストするために、.npmrc
ファイルに次の行を追加する必要があります。
public-hoist-pattern[]=*@nextui-org/*
.npmrc
ファイルを変更した後、依存関係が正しくインストールされていることを確認するために、再度 pnpm install
を実行する必要があります。
TailwindCSS のセットアップ
NextUI v2 では Tailwind CSS を使用するようになりました。NextUI プラグインを tailwind.config.js
ファイルに追加します。
注意: pnpm とモノレポアーキテクチャを使用している場合は、必ずルートの
node_modules
を指していることを確認してください。
// tailwind.config.jsconst { nextui } = require("@nextui-org/react");/** @type {import('tailwindcss').Config} */module.exports = {content: [// ...// make sure it's pointing to the ROOT node_module"./node_modules/@nextui-org/theme/dist/**/*.{js,ts,jsx,tsx}"],theme: {extend: {},},darkMode: "class",plugins: [nextui()]}
プロバイダーのセットアップ
root
ファイルに移動し、コンポーネントを NextUIProvider
でラップします。
// src/main.jsximport React from 'react'import ReactDOM from 'react-dom/client'import {NextUIProvider} from '@nextui-org/react'import App from './App'import './index.css'ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(<React.StrictMode><NextUIProvider><App /></NextUIProvider></React.StrictMode>,)
NextUI コンポーネントの使用
これで、任意の NextUI コンポーネントを好きな場所にインポートできます。
import {Button} from '@nextui-org/react'export default function Page() {return (<div><Button>Click me</Button></div>)}
新機能と破壊的な変更の詳細については、リリースノートをご覧ください。