質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

747閲覧

Nuxt.jsでmiddleware内でモジュールimportするとエラー

risamiya

総合スコア33

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2018/08/27 12:59

Nuxt.jsのmiddlewareでモジュールimportをするとローカルでアプリが立ち上がりません。
なにがいけないのでしょうか?

実行手順は以下です。

  1. スターターテンプレートを使って、シンプルアプリを作る

手順:[https://ja.nuxtjs.org/guide/installation]
2. nuxt.config.js内にmiddlewareの指定を追加(auth.js)
router: { middleware: 'auth'}
3. auth.js内でaws-amilfyをimportする
import { Auth } from 'aws-amplify'
4. npm run devするとエラー
エラー内容

TypeError:

1 at /Users/hoge/dev/nuxt-app-sample/node_modules/vue-router/dist/vue-router.common.js```

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

SSRについてあまり詳しくないのですが、SSR時にライブラリがwindowなどを使用しているとエラーが起きるようなのでドキュメント(https://ja.nuxtjs.org/faq/window-document-undefined/)の通り対応する必要があるようです。

if (process.browser) { // windowなどの処理 }

nuxt.config.js

build: { vendor: ['ライブラリ'] }

なお、nuxt.config.jsで mode: 'spa' の場合はエラーが発生しません。

投稿2018/08/31 04:10

thori

総合スコア39

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

risamiya

2018/09/04 07:32

ありがとうございます。 ただ処理分けというか、そもそもimportしただけで(処理は何も書いてない状態で)エラーなんです。
thori

2018/09/04 09:09 編集

auth.js内のimportを下記のようにrequireに書き換えてみてはいかがでしょうか let Auth if (process.browser) { Auth = require('aws-amplify') }
thori

2018/09/04 10:20

補足しますと、自分で書いている処理ではなく、importしているライブラリ自体が中でwindowを使用しているためにエラーが発生しているのではないでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問