Я пытаюсь добавить FullCalendar в свой проект Laravel. Когда я загружаю. js прямо в blade-сервер из CDN, все работает, но я хочу скомпилировать их в vendor. js, и это не работает.
мое приложение. js ниже
import '../bootstrap';
import '../plugins';
import '@fullcalendar/core/main.min';
import '@fullcalendar/daygrid/main.min';
import '@fullcalendar/interaction/main.min';
import '@fullcalendar/timegrid/main.min';
import '@fullcalendar/moment/main.min';
import '@fullcalendar/moment-timezone/main.min';
мой webpack.mix. js имеет следующие строки
const mix = require('laravel-mix');
mix.setPublicPath('public')
.setResourceRoot('../') // Turns assets paths in css relative to css file
// .options({
// processCssUrls: false,
// })
.sass('resources/sass/frontend/app.scss', 'css/frontend.css')
.sass('resources/sass/backend/app.scss', 'css/backend.css')
.js('resources/js/frontend/app.js', 'js/frontend.js')
.js([
'resources/js/backend/before.js',
'resources/js/backend/app.js',
'resources/js/backend/after.js'
], 'js/backend.js')
.extract([
// Extract packages from node_modules to vendor.js
'jquery',
'bootstrap',
'popper.js',
'axios',
'sweetalert2',
'lodash',
'@fullcalendar/core',
'@fullcalendar/daygrid',
'@fullcalendar/interaction',
'@fullcalendar/timegrid',
'@fullcalendar/moment',
'@fullcalendar/moment-timezone'
])
.sourceMaps();
if (mix.inProduction()) {
mix.version()
.options({
// Optimize JS minification process
terser: {
cache: true,
parallel: true,
sourceMap: true
}
});
} else {
// Uses inline source-maps on development
mix.webpackConfig({
devtool: 'inline-source-map'
});
}
в моем layout.blade У меня есть
<!-- Scripts -->
@stack('before-scripts')
{!! script(mix('js/manifest.js')) !!}
{!! script(mix('js/vendor.js')) !!}
{!! script(mix('js/frontend.js')) !!}
@stack('after-scripts')
и, наконец, в calendar.blade
У меня есть следующие строки.
...
...
...
<div id='calendar'></div>
...
...
...
@push('after-scripts')
<script>
document.addEventListener('DOMContentLoaded', function() {
var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
plugins: [ 'dayGrid' ]
});
calendar.render();
});
</script>
@endpush
и я получаю следующую ошибку в консоли Chrome
Uncaught ReferenceError: FullCalendar is not defined
at HTMLDocument.<anonymous> (7:195)