Nuxt.js v3 のインストール + 初期設定¶
Nuxt の v3 インストール方法と初期設定について自分用にまとめたものです。
Nuxt をインストールしたあと、Vuetify もいれます。さらに PWA 化もします。
環境¶
nuxt
:3.0.0
vuetify
:3.0.5
sass
:1.57.0
eslint
:8.30.0
eslint-plugin-nuxt
:4.0.0
@nuxtjs/eslint-config-typescript
:12.0.0
スタータープロジェクトを入れる¶
npx nuxi init <PROJECT-NAME>
でスタータープロジェクトを作成します。
Yarn を使う場合でも、npx で作成するしかないようです。
<PROJECT-NAME>
ディレクトリの下に、以下のファイルが生成されます。
.gitignore
app.vue
nuxt.config.ts
package.json
README.md
tsconfig.json
その後、プロジェクトのディレクトリに入り yarn install
で依存パッケージをダウンロードします。
@types/node
のインストールも忘れずに。
yarn install
yarn add -D -E @types/node
ちなみに、当然 package.json
には name
とかの基本設定が書かれていないので、書き加えるのを忘れずに。
基本的な設定¶
- meta タグ
components
ディレクトリとかをsrc
ディレクトリに置きたいのでソースディレクトリをsrc
にする- 型チェックは
NODE_ENV
がdevelopment
のときのみ行う strict
はtrue
nuxt.config.ts | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
|
src
ディレクトリに app.vue
を移動すること。
eslint¶
yarn add -D eslint eslint-plugin-nuxt @nuxtjs/eslint-config-typescript vite-plugin-eslint
package.json にこのへんのスクリプトを追加。
package.json | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 |
|
さらに nuxt.config.ts
に以下の設定を追加。
nuxt.config.ts | |
---|---|
1 2 3 4 5 6 7 8 |
|
eslint の設定は Nuxt v3 での eslint 設定 を参照。とりあえずは以下。
.eslintrc.yml | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
prettier は使わないので、.prettierignore
に以下を記述。
.prettierignore | |
---|---|
1 |
|
Vuetify¶
- Vuetify の公式ドキュメント: https://vuetifyjs.com/
- 参考記事: https://zenn.dev/one_dock/articles/ab6d178741956d
yarn add -D vuetify @mdi/font sass
nuxt.config.ts
の build
と css
に以下の設定をします。
nuxt.config.ts | |
---|---|
1 2 3 4 5 6 7 8 9 10 |
|
さらに、プラグインとして Vuetify の初期設定を src/plugins/vuetify.ts
に追加します。
src/plugins/vuetify.ts | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 |
|
PWA¶
公式の PWA モジュールは v3 に対応していないっぽいので、v2 と互換性のある非公式の PWA モジュールを利用します。
- npm: https://www.npmjs.com/package/@kevinmarrec/nuxt-pwa
- GitHub リポジトリ: https://github.com/kevinmarrec/nuxt-pwa-module
で、nuxt.config.ts
の modules
に定義します。
また、このモジュールはメタデータを引き継がないようなので、以下の通り PWA 用に設定する必要があります。
nuxt.config.ts | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
Pinia¶
Nuxt.js v2 で利用されていた Vuex はバンドルされなくなり、開発者が状態管理ライブラリを選択できるようになった(らしい)。
2021 年 6 月ごろには Vuex 5 の情報があったのだが、このディスカッション によれば Pinia が Vue における公式状態管理ライブラリという位置付けらしいので、これを使うことにします。
- 公式サイト: https://pinia.vuejs.org/
- GitHub: https://github.com/vuejs/pinia
なお、状態の永続化をするため @pinia-plugin-persistedstate/nuxt を利用します。
まず、普通にパッケージをインストールします。
yarn add pinia @pinia/nuxt @pinia-plugin-persistedstate/nuxt
次に、まあ例のごとく nuxt.config.ts
の modules
に追記します。
nuxt.config.ts | |
---|---|
1 2 3 4 5 6 7 8 9 10 |
|
あとは Nuxt 3 における新しい state と同様に、useState
を使って状態を定義します。
src/store/settings.ts | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
presist.storage
には localStorage
のほかに sessionStorage
, cookies
が指定可能な様子。
そして、状態を使う場所で以下のようなコードを書きます。
1 2 3 4 5 6 |
|