Момент не определен Laravel - PullRequest
0 голосов
/ 20 марта 2019

Я пытаюсь использовать moment.js в своем проекте laravel, не использую vue, но все же импортирую пакет через npm.

Мой файл app.js:

require('moment/moment.js');
require('./bootstrap');
require('bootstrap-select');

в моем файле webpack.pix.js выглядит так:

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

mix.setResourceRoot('laravel/public');

mix.js('resources/js/app.js', 'public/js')
     .combine([
          'resources/theme/dist/js/app.js',
          'resources/theme/dist/js/app.init.js',
          'resources/theme/dist/js/sidebarmenu.js',
          'resources/theme/dist/js/waves.js',
          'resources/theme/assets/libs/perfect-scrollbar/dist/perfect-scrollbar.jquery.min.js',    
          'resources/theme/assets/extra-libs/sparkline/sparkline.js',  
          'resources/theme/dist/js/custom.js',
          'resources/js/custom.js'
     ], 'public/js/nice-admin.js')
     .copyDirectory('resources/theme/assets/images/', 'public/assets/images')
     .copyDirectory('resources/theme/dist/css/icons/material-design-iconic-font/fonts', 'public/fonts')
     .copy('node_modules/bootstrap-daterangepicker/daterangepicker.css', 'public/css/daterangepicker.css')
     .copy('node_modules/bootstrap-select/dist/css/bootstrap-select.min.css', 'public/css/bootstrap-select.min.css')
     .sass('resources/sass/app.scss', 'public/css', {
           implementation: require('node-sass')
}).options({processCssUrls: false})

А потом в моем файле custom.js я только что получил это:

$(function() {
    "use strict";

    let date = moment().format();
    console.log(date);
});

Я получаю следующую ошибку:

app.js:13202 Uncaught ReferenceError: moment is not defined
    at HTMLDocument.<anonymous> (nice-admin.js:2144)
    at mightThrow (app.js:12909)
    at process (app.js:12977)

Я убедился, что этот момент находится в моем скомпилированном файле app.js. Так почему мой файл custom.js не видит его и что мне нужно сделать, чтобы это исправить?

1 Ответ

2 голосов
/ 20 марта 2019

В ту минуту вы не назначаете moment ни для чего. В соответствии с документами вы должны назначить его переменной, которая будет использоваться:

переменная момент = требуется ('момент');
Формат момент () ();.

Однако это не будет работать, если вы хотите использовать его вне области действия app.js файла. Один из способов сделать это - добавить его к объекту window:

window.moment = require('moment');
...