| この記事の要点 |
|
エラー内容
app.js:13672 [Vue warn]: Error in created hook: "ReferenceError: axios is not defined"
...
app.js:14935 ReferenceError: axios is not defined
at VueComponent.getChannels (app.js:955)
at VueComponent.created (app.js:943)
at invokeWithErrorHandling (app.js:14901)
at callHook (app.js:17252)
at VueComponent.Vue._init (app.js:18034)
at new VueComponent (app.js:18179)
at createComponentInstanceForVnode (app.js:16328)
at init (app.js:16159)
at merged (app.js:16346)
at createComponent (app.js:19005)
ブラウザの開発者ツールのコンソールに表示されます。「created フックの実行中にエラー: axios が定義されていません」という意味で、コンポーネントの created() から呼んだメソッド(この例では getChannels)の中で axios.get(...) を実行した瞬間に発生しています。
原因
JavaScript では、宣言もインポートもしていない名前を参照すると ReferenceError になります。axios はブラウザに最初から入っている機能ではないため、次のどれかで「使える状態」にしておく必要があります。
| 読み込み方 | axios が使える範囲 | よく使われる環境 |
|---|---|---|
window.axios = axios でグローバルに登録 | 登録後のすべてのコード | Laravel の標準構成(bootstrap.js) |
各ファイルで import axios from 'axios' | インポートしたファイルの中だけ | Vue CLI・Vite のプロジェクト |
| CDN の script タグで読み込み | 読み込み完了後のすべてのコード | ビルドツールを使わない構成 |
このうちどれも行われていない、または順序が逆になっていると、このエラーになります。
対処法
Laravel を使っている場合
Laravel の標準構成では、bootstrap.js の中で axios を読み込んで window.axios に登録しています。app.js で以下の文言が無ければ追加します。
// Laravel Mix 時代の app.js(CommonJS 形式)
require('./bootstrap');
// Vite を使う新しい Laravel の app.js(ES Modules 形式)
import './bootstrap';
ファイルの場所は、Laravel 5.6 以前は resources/assets/js/app.js、5.7 以降は resources/js/app.js です。あわせて bootstrap.js の中に axios の登録があるかも確認します。
// resources/js/bootstrap.js(Vite 構成の例)
import axios from 'axios';
window.axios = axios;
node_modules に axios が入っていない場合は npm install(または npm install axios)を実行します。
Vue CLI / Vite 単体のプロジェクトの場合
axios をインストールし、使うコンポーネントでインポートします。
npm install axios
import axios from 'axios';
export default {
data() {
return { channels: [] };
},
created() {
this.getChannels();
},
methods: {
async getChannels() {
const res = await axios.get('/api/channels');
this.channels = res.data;
},
},
};
すべてのコンポーネントで this.$axios として使いたい場合は、エントリーファイル(main.js など)で登録します。Vue 2 は Vue.prototype.$axios = axios;、Vue 3 は app.config.globalProperties.$axios = axios; です。
CDN で読み込んでいる場合
axios の script タグを、Vue や自分のコードを読み込む script タグより前に置きます。後ろに置くと、自分のコードが実行された時点ではまだ axios が存在しません。
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script src="/js/app.js"></script>
直したのに変わらないときの確認ポイント
- ビルドし直したか:
app.jsを修正しても、Mix ならnpm run dev、Vite ならnpm run devの起動またはnpm run buildをしないと、ブラウザに配信される JavaScript は古いままです - ブラウザのキャッシュ: スーパーリロード(Ctrl+Shift+R など)で読み込み直します
- Blade で正しいファイルを読み込んでいるか: Mix 構成なら
<script src="{{ mix('js/app.js') }}"></script>、Vite 構成なら@vite(['resources/js/app.js'])がレイアウトにあるか確認します - ESLint の no-undef: ビルド時に
'axios' is not definedと出るのは ESLint の警告です。グローバル変数として使っているなら、インポートに書き換えるのが確実です
確認方法
ブラウザのコンソールで typeof axios と入力し、'function' と表示されればグローバルに読み込まれています(インポート方式の場合は 'undefined' でも正常です)。ページを再読み込みしてエラーが消え、開発者ツールのネットワークタブに API へのリクエストが表示されれば解決です。
関連
- Laravel + Vue.js 連携完全ガイド (Vite / Inertia / SPA)
- Vue.js のライフサイクルフック|created / mounted / updated
- Vue.js のインストール方法完全ガイド (CDN / npm / Vite)
- JavaScript ライブラリ完全ガイド — jQuery/Lodash/Axios/Three.js から選定基準まで
- Vue.js を本番環境にリリース|Mix / Vite ビルド・デプロイ手順
子ページはありません
同階層のページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスのソフト一覧|Blender・Metasequoiaと用途別の選び方
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Visual Studio「デザイナーを表示できません」エラーの原因と対処 2026-10-28 12:06:00
- SSH 認証に失敗しました。再試行してください の対処 2026-10-28 12:06:00
- SSH2 秘密鍵の読み込みに失敗しました の原因と対処 2026-10-28 12:06:00
- TeraTerm のよくあるエラーと対処法完全ガイド — Connection refused / 2026-10-28 12:06:00
- Visual Studio エラー一覧|コンパイルエラー・警告の確認方法と対処 2026-10-28 11:39:57
- Whitelabel Error Page の原因と消し方|Spring Boot のエラーページ 2026-10-28 11:39:57
- Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法 2026-10-28 11:39:57
- SQL WHERE 句完全ガイド 2026-10-28 11:39:57
- SQL JOIN 完全ガイド (INNER/LEFT/RIGHT/FULL OUTER) 2026-10-28 11:39:57
- tomcat の起動 / 停止ログと catalina.log・catalina.out の違い 2026-10-28 10:24:23
- Tomcat の起動確認方法 5 つ|localhost:8080・ポート・プロセス・ログ 2026-10-28 10:24:23
- Oracle 19c COMMITの使い方: 暗黙コミット・自動確定・応答不明時の確認 2026-10-28 09:59:09
- Oracle 19c DELETE文|削除対象の確認・COMMIT前の判断・ROLLBACKの条件 2026-10-28 09:59:09
- Oracle 19c INSERT文|INSERT ALL・SELECT・RETURNINGとMERGEの使い分け 2026-10-28 09:59:09
- Oracle 19cのトランザクション制御|COMMIT・ROLLBACK・分離レベルと接続設定 2026-10-28 09:59:09