アストロ
アストロのインストールと構成
プロジェクトの作成
新しいアストロプロジェクトを作成することから始めます。
npm create astro@latestアストロプロジェクトの構成
プロジェクトの構成に関するいくつかの質問が尋ねられます。
- 新規プロジェクトをどこに作成する必要がありますか?
./your-app-name
- 新規プロジェクトをどのように開始しますか?
スターターテンプレート(または空)を選択してください
- 依存関係をインストールしますか?
はい
- TypeScriptを書く予定はありますか?
はい
- TypeScriptはどれほど厳密にする必要がありますか?
厳密
- 新しいgitリポジトリを初期化しますか(オプション)?
はい/いいえプロジェクトにReactを追加する
アストロCLIを使用してReactをインストールします。
npx astro add reactReactをインストールするときに、CLIによって尋ねられるすべての質問には「はい」と答えます。
プロジェクトにTailwind CSSを追加する
アストロCLIを使用してTailwind CSSをインストールします。
npx astro add tailwindTailwind CSSのインストール時にCLIによって尋ねられるすべての質問に「はい」と答えます。
tsconfig.jsonファイルの編集
次のコードをtsconfig.jsonファイルに追加してパスを解決します。
{
"compilerOptions": {
// ...
"baseUrl": ".",
"paths": {
"@/*": [
"./src/*"
]
}
// ...
}
}CLIの実行
shadcn-ui initコマンドを実行してプロジェクトをセットアップします。
npx shadcn-ui@latest initcomponents.jsonの構成
components.jsonを構成するために、いくつかの質問が尋ねられます。
TypeScriptを使用しますか(推奨)? いいえ/はい
どのスタイルを使用しますか? › デフォルト
ベースカラーとして使用する色を入力してください。 › スレート
グローバルCSSファイルはどこにありますか? › › ./src/styles/globals.css
カラーのCSS変数を使用しますか? › いいえ/はい
tailwind.config.jsはどこにありますか? › tailwind.config.mjs
コンポーネントのインポートエイリアスを構成します。 › @/components
ユーティリティのインポートエイリアスを構成します。 › @/lib/utils
React Server Componentsを使用していますか? › いいえglobals.cssファイルのインポート
src/pages/index.astroファイルにglobals.cssファイルをインポートします。
---
import '@/styles/globals.css'
---アストロtailwind構成の更新
Tailwindの基本スタイルを2回適用することを防ぐために、astro.config.mjsのtailwindプラグインのapplyBaseStyles構成オプションをfalseに設定して、アストロに基本スタイルを適用しないようにする必要があります。
export default defineConfig({
integrations: [
tailwind({
applyBaseStyles: false,
}),
],
})tailwind.config.mjsの更新
npx shadcn-ui@latest initを実行すると、コンテンツのtailwind構成が上書きされます。これを修正するには、module.exportsをexport defaultに変更し、contentセクションを次のコードに置き換えてtailwind.config.mjsファイルに追加します。
export default {
content: ["./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}"],
}これだけです
コンポーネントをプロジェクトに追加し始められます。
npx shadcn-ui@latest add button上記のコマンドは、Buttonコンポーネントをプロジェクトに追加します。その後、次のようにインポートできます。
---
import { Button } from "@/components/ui/button"
---
<html lang="en">
<head>
<title>アストロ</title>
</head>
<body>
<Button>こんにちは世界</Button>
</body>
</html>