时刻 js 未定义 Laravel
Moment js undefined Laravel
我正在尝试在我的 laravel 项目中使用 moment.js,不使用 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 文件看不到它,我需要做什么来修复它?
您目前没有将 moment
分配给任何东西。根据 docs,您应该将其分配给要使用的变量:
var moment = require('moment');
moment().format();
但是,如果您想在 app.js
文件的范围之外使用它,这将不起作用。一种方法是将其添加到 window
对象:
window.moment = require('moment');
我正在尝试在我的 laravel 项目中使用 moment.js,不使用 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 文件看不到它,我需要做什么来修复它?
您目前没有将 moment
分配给任何东西。根据 docs,您应该将其分配给要使用的变量:
var moment = require('moment');
moment().format();
但是,如果您想在 app.js
文件的范围之外使用它,这将不起作用。一种方法是将其添加到 window
对象:
window.moment = require('moment');