Laravel 5.4 laravel-mix issue

laravelインストール後

→npm install

→npm run dev

→ミックスされたapp.js生成

TypeError: Cannot read property 'csrfToken' of undefined

→もう一度npm run dev→error: jsにエラーがあるため

 

各々のファイルに

<script> window.Laravel = <?php echo json_encode([ 'csrfToken' => csrf_token(), ]); ?> </script>

または、

<script> window.Laravel = {!! json_encode([ 'csrfToken' => csrf_token(), ]) !!}; </script>

を埋め込むか

 

resources/assets/js/app.js

window.$ = window.jQuery = require('jquery');

window.Laravel = { csrfToken: $('meta[name=csrf-token]').attr("content") };

require('/bootstrap');

を加筆後、npm run dev

 

①②の場合app.jsに直接記述してnpm run devするとエラーになるため都度ファイルに書き込む

 

参考:

laracasts.com

github.com