• ブログTOP
  • AI・ディープラーニング
  • AR
  • VR
  • WEBサイト
  • WEBマーケティング
  • SEO
  • SNS
  • その他
  • お問い合わせ

ALAKI株式会社

COZIKEEいつまでも使えるTech情報発信ブログ

Laravel Mix使用時にJavascriptの関数が未定義(not found)になるときの対処法

2022年12月2日

  • このエントリーをはてなブックマークに追加

こんにちは、Webプログラマの隅です。

12月になって一気に寒くなりましたね。銭湯に行きたいです。

先日、Laravelでの開発時にLaravel mixでapp.jsにまとめてコンパイルしたJavascriptの関数が動かないといった問題でうんうん頭を抱えたのですが、解決法が見つかったのでご紹介いたします。

この記事の目次

  • 1 Javascriptでfunctionを設定し、Laravel Mixでコンパイルすると動かない!?
  • 2 Laravel Mixのコンパイル時にはグローバル変数に関数を代入する
  • 3 最後に

Javascriptでfunctionを設定し、Laravel Mixでコンパイルすると動かない!?

既存のLaravelアプリケーションをリファクタリングしていたのですが、
Javascriptの同じ記述が複数箇所に出てきたため、関数化して1つのファイルにまとめてしまおうと
下記のようにapp.jsに読み込む形でコンパイルすることにしました。

resources/js/app.js

1
2
require('./bootstrap');
require('./common');

resources/js/common.js

1
2
3
function sentou(){
console.log('銭湯行きたい');
}

resources/views/sample.blade.php

1
2
3
4
5
6
<head>
  <script src="{{ asset('js/app.js') }}" defer></script>
</head>
<body>
  <div class="btn" onclick="sentou();">いまの気持ち</div>
</body>

 

そして、いざnpm run dev!そしてボタンをクリック!としたところ……

1
sentou is not defined

WHY JAPANESE PEOPLE!?
さっきまで動いていたじゃないか!?
銭湯に行くなってことかい!?

Laravel Mixのコンパイル時にはグローバル変数に関数を代入する

調査したところ、Laravel Mixで使用されているwebpackは JavaScript のモジュール機構 (ES2015 モジュール) が実装されており、異なる js ファイルで同じ名前の変数や関数が定義されても問題が起こらないように、各 js ファイルが独立した名前空間を持つようになっているようです。
(つまり、関数sentouはcommon.jsのローカル関数として扱われるため、外部から実行できないのです)

解決策として、関数sentouをwindowオブジェクトのプロパティに代入します。

 

resources/js/common.js

1
2
3
window.sentou = function(){
console.log('銭湯行きたい');
}

resources/views/sample.blade.php

1
<div class="btn" onclick="sentou();">いまの気持ち</div>

 

そして、いざnpm run dev!そして再びボタンをクリック!

console

1
銭湯行きたい

カポーーーン……♨️

ありがとうございます。無事銭湯に行けそうです。

ボタンを押すのも待てないほど銭湯に行きたい方は、下記で読み込み時に実行可能です。

resources/views/sample.blade.php

1
2
3
4
5
6
7
8
<head>
  <script src="{{ asset('js/app.js') }}" defer></script>
</head>
<script type="text/javascript" defer>
    window.addEventListener('load', function() {
        window.sentou();
    });
</script>

最後に

ALAKIでは、これからどんどん海外に向けたビジネスを展開していきます。
クリエイティブ業務における修正依頼にかかる時間を1/5にできる自社サービス「MONJI」は海外のユーザー様にも好評です。

以下のサイトより、超直感的な修正依頼をぜひ体験してみてください!

■MONJI サービス紹介サイト
https://monji.tech/ja/

また最近では、閲覧しているサイトから修正依頼を1クリックで作成可能なChrome拡張機能「MONJI-izm」をリリースしました。
従来の読み込みと比較すると、読み込み速度が2倍に高速化。あっという間に読み込みが完了します。
これまでにない、爆速な読み込みを体験してみてください!

■MONJI Chrome拡張機能「MONJI-izm」
https://chrome.google.com/webstore/detail/monji–izm/mbcmpffcfjglebcgpgecadkoopogabka?hl=ja
※Chrome ウェブストアのページが開きます

ALAKI株式会社では、「MONJI」をはじめとするサービスで世界中に価値を提供するため、一緒に大きな目標に挑戦する仲間を募集中です!
さまざまな国で、さまざまな人たちと、ワクワクするビジネスに挑戦したい方のご応募をお待ちしております!

■ALAKI リクルートサイト
https://recruit.alaki.co.jp/


現場の業務フローに寄り添ったWebシステムをお求めなら、私たちALAKIにご相談ください。

ALAKIは経営者様が感じている問題点と、実際にWebシステムを利用される現場スタッフ様が直面している課題を、弊社システムエンジニアが丁寧に聞き取り、お客様と共にシステムを作り上げていきます。
業務改善が実現できるWebシステムをお求めの方は、是非ALAKIにご相談ください。

・ALAKIのWebシステム開発

・ALAKIのクラウド型受発注システム

  • ツイート
  • このエントリーをはてなブックマークに追加

You may also like...

  • スクリーンショット 2022-11-05 6.38.01

    AR FoundationをURPに対応させてShader Graphを導入する

    5 11月, 2022

  • スクリーンショット 2018-02-16 1.45.20

    遅延読み込みでWebページを高速化!jQuery Lazy Loadの使い方

    16 2月, 2018

  • 4a57a448bf44f4eab18c46a6dc592236_m

    プログラマも簡単に実装「sweetalert.js」で作る簡単アラート

    28 7月, 2017

  • Next story クリティカルシンキングとは?激動の時代を生き抜くビジネススキル
  • Previous story サービスを成功させるために必要な、ユーザーに提供すべき3つの対価

弊社サービス

MONJI+ MUGHEN ALAKI クラウド型受発注システム さよなら過去のAR。WebARがイベント集客に革命を起こします。

運営会社

ALAKI株式会社 ALAKI株式会社採用サイト

人気の記事

  • alaki1462_A_businessman_who_works_logically_1da80a2e-c297-4911-bdd6-feba0ebf1357

    仕事術

    【書籍要約】数学的な仕事術大全

    4 11月, 2024

  • fv-main-img-min

    空間コンピューティング

    世界初!「空間コンピューティング」を専用端末不要、スマホのWebブラウザのみで実現する『Web XR Site』を公開しました

    22 6月, 2023

  • Virtual reality players isometric vector illustration. VR UI and navigation. Futuristic digital technology. Virtual screen. Mixed reality 3d concept. Person in VR headset. Web banner idea

    AR

    Appleから新世代MRグラス「Vision Pro」の登場 – デジタルと現実世界が融合する新時代へ

    6 6月, 2023

  • AWE

    未分類

    ARアプリ『MUGHEN』が世界最大のAR/VRアワード「AWE」のファイナリストに選出されました!

    26 5月, 2023

  • python-logo-master-v3-TM

    pyhotn / 業務効率化

    「SwinIR」で高画質化した画像を pythonを使用して一括で元のサイズに戻す方法

    2 2月, 2023

カテゴリー

  • AI・ディープラーニング
  • AR
  • BtoB
  • CMS
  • Git
  • Google AdWords
  • gulp
  • Javascript
  • Laravel
  • Photoshop
  • Pug
  • pyhotn
  • Sass
  • SEO
  • SNS
  • Twitter広告
  • VR
  • Web3.0
  • WEBサイト
  • WEBマーケティング
  • YouTube
  • コーディング
  • システム開発
  • スマートフォンサイト
  • セキュリティ
  • セミナー
  • その他
  • ツール
  • デザイン
  • ベトナムレポート
  • 仕事術
  • 未分類
  • 業務効率化
  • 空間コンピューティング
  • 色

アーカイブ

  • 2024年11月
  • 2023年6月
  • 2023年5月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年2月
  • 2021年12月
  • 2021年9月
  • 2021年7月
  • 2021年6月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年6月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月
  • 2018年1月
  • 2017年12月
  • 2017年11月
  • 2017年10月
  • 2017年9月
  • 2017年8月
  • 2017年7月
  • 2017年6月
  • 2017年4月
  • 2017年3月
  • 2017年2月
  • 2017年1月
  • 2016年12月
  • 2016年11月
  • 2016年10月
  • 2016年9月
  • 2016年8月
  • 2016年7月
  • 2016年6月
  • 2016年5月
  • 2016年4月
  • 2016年3月
  • 2016年2月
  • 2016年1月
  • 2015年12月
  • 2015年11月
  • 2015年10月
  • 2015年9月
  • 2015年7月
  • 2015年3月
  • 2015年2月
  • 2015年1月
  • 2014年12月
  • 2014年11月
  • 2014年10月
  • 2014年9月
  • 2014年8月
  • 2014年7月
  • 2014年6月
  • 2013年10月
  • 2013年9月

Facebook

お問い合わせ

お問い合わせ

人気の記事

  • 【書籍要約】数学的な仕事術大全
  • 世界初!「空間コンピューティング」を専用端末不要、スマホのWebブラウザのみで実現する『Web XR Site』を公開しました
  • Appleから新世代MRグラス「Vision Pro」の登場 – デジタルと現実世界が融合する新時代へ
  • ARアプリ『MUGHEN』が世界最大のAR/VRアワード「AWE」のファイナリストに選出されました!
  • 「SwinIR」で高画質化した画像を pythonを使用して一括で元のサイズに戻す方法

カテゴリー

  • AI・ディープラーニング
  • AR
  • BtoB
  • CMS
  • Git
  • Google AdWords
  • gulp
  • Javascript
  • Laravel
  • Photoshop
  • Pug
  • pyhotn
  • Sass
  • SEO
  • SNS
  • Twitter広告
  • VR
  • Web3.0
  • WEBサイト
  • WEBマーケティング
  • YouTube
  • コーディング
  • システム開発
  • スマートフォンサイト
  • セキュリティ
  • セミナー
  • その他
  • ツール
  • デザイン
  • ベトナムレポート
  • 仕事術
  • 未分類
  • 業務効率化
  • 空間コンピューティング
  • 色

検索

ALAKI株式会社 © 2025. All Rights Reserved.