diadia

興味があることをやってみる。自分のメモを残しておきます。

amplify aws

ネット上のaws amplify の情報は新旧いろいろ混ざっている。細々した疑問を整理したい。

前提

自分のやりたいことはvue3でamplifyを動かしたい

amplify とvue + viteの組み合わせについて

まずviteで動かすのはかなり困難が伴うことが分かったのでvue cliで実装することが望ましいと分かった。そもそも動かせるとして後にどこに影響してくるか分からないのが怖い。ここはVue CLIが良いと分かった。

https://stackoverflow.com/questions/66912795/in-vite-vue3-ts-project-aws-amplify-failed-to-resolve-components

Vite not working with aws-amplify package · Issue #685 · vitejs/vite · GitHub

Not working with aws-cli / aws-amplify · Issue #1374 · vitejs/vite · GitHub

amplifyとvue + vue cliCSSフレームワーク

現在Vue3はvuetifyに対応しておらず、tailwindを使う場合もある。その時はライブラリの依存関係に注意して環境を作ればなんとかなった印象。公式ドキュメントにはvue cliを使ってtailwindを導入する事例もないし、そこらへんの記事を見て試してもうまく行かないことが多かったが、良い記事を見つければなんとかなった。

EventBusとHub問題(これらは同一のものとして考えてあげる)

まずAmplifyEventBusとHubは同じ役割を果たすものだろうという認識になった。機能的には全く別のものではない事がわかった。

https://stackoverflow.com/questions/61900300/gridsome-aws-amplify-importing-event-bus-breaks-logout-button-component

上によると、amplifyEventBusはレガシーだからHubを使いましょうとある。 確かにamplify 公式ドキュメントのUI Component部分をみれば、legacyとlatestに分かれていて、legacyの部分にeventBusを使う説明が書いてある。このlegacyかlatestの部分で使うライブラリが変わってくるのだけれども、コレもその1つだった。

EventBusとHub問題(イベント時に処理を付け加えたい時に使う)

Hubはどんな時に使えばよいのか。これも1つの問題だった。この問題はこのようにも置き換えられる。amplifyが準備してくれる機能はどこまでカバーしてるいるのか。 カバーをしていないところでHubを使うだろうことはわかるのだが、どこまでカバーしているかは知らず困った。特に最初の方はHubを使わないでもamplifyのUIコンポーネントを使えば認証系はすべて解決すると思っていた。この認識は誤りであった。

使用するライブラリ

amplifyドキュメントUI component部分にはLatestバージョンとLegacyバージョンのドキュメントが存在する。 それぞれで利用するライブラリが変わり、そのためインストールするライブラリを変える必要がある。

Legacyバージョンのインストールするライブラリは以下の通り。

npm i aws-amplify
npm i aws-amplify-vue

Amplify UI (Legacy) - Amplify Docs

Latest版のライブラリのインストールは一通りではなく、Vueのバージョンでインストールするライブラリが変わってくることに注意したい。

Vue2

yarn add aws-amplify @aws-amplify/ui-vue

Vue3

yarn add aws-amplify @aws-amplify/ui-components

割とライブラリの組み合わせをよく見て記事を見ないと全然できるようにならないのでこの点は十分気をつけたい。

実際にVue3の場合で組み立てた際はaws-amplify @aws-amplify/ui-componentsをインストールすればよく。その他必要となるものはなかった。