Uncaught TypeError: r не является функцией в index.js: 1 - PullRequest
0 голосов
/ 06 июля 2018

Проект Laravel на виртуальном выделенном сервере. После сборки с npm run production я открываю страницу через Chrome и вижу только пустую страницу. Консоль показала мне эту ошибку. Я попытался добавить несколько плагинов в webpack.mix.js, например, «babel-polyfill», но безрезультатно. Рамки Laravel 5.4.36 npm версия 3.10.10

Вот мой app.blade.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta
            name="viewport"
            content="width=device-width, initial-scale=1, user-scalable=0, maximum-scale=1, minimum-scale=1"
    >

    <!-- CSRF Token -->
    <meta name="csrf-token" content="{{ csrf_token() }}">

    <title>{{ config('app.name', 'Laravel') }}</title>

    <!-- Styles -->
    <link rel="stylesheet" href="{{ elixir('css/app.css') }}">

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

<div id="react-container"></div>

<!-- Scripts -->
<script>
    var MapInstance;
</script>

<script src="{{ mix('js/app/manifest.js') }}"></script>
<script src="{{ mix('js/app/vendor.js') }}"></script>
<script src="{{ mix('js/app/index.js') }}"></script>

</body>
</html>

и мой webpack.mix.js

let mix = require('laravel-mix');


mix
  .react('resources/assets/js/app/index.jsx', 'public/js/app')
   
  .sass('resources/assets/sass/app.scss', 'public/css')
  .sass('resources/assets/sass/start.scss', 'public/css')
  .copy('node_modules/material-design-lite/material.min.js', 'public/vendor/material.min.js')
  .copy('node_modules/material-design-lite/material.min.js.map', 'public/vendor/material.min.js.map')
  .copy('node_modules/jquery/dist/jquery.min.js', 'public/vendor/jquery.min.js')
  .sourceMaps()
  .browserSync('ap.dev');

if (mix.inProduction()) {
  mix.version();
}

1 Ответ

0 голосов
/ 06 июля 2018

Вы должны добавить JQuery, прежде чем Материал в webpack.mix.js:

// ...

.copy(
    'node_modules/jquery/dist/jquery.min.js', 
    'public/vendor/jquery.min.js'
)
.copy(
    'node_modules/material-design-lite/material.min.js',
    'public/vendor/material.min.js'
)
.copy(
    'node_modules/material-design-lite/material.min.js.map',
    'public/vendor/material.min.js.map'
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...