我知道关于moment
和tempudominus-bootstrap-4
会有很多问题,但是大多数情况下,这与用户错误有关,而我没有找到我的参考...
所以我正在使用symfony
框架和webpack-encore
捆绑包。我想将tempusdominus添加到文件event.js
中以使用dateTimePicker
//../assets/js/app.js
import $ from 'jquery';
import 'bootstrap';
import moment from 'moment';
import 'tempusdominus-bootstrap-4';
$(function () {
//some datepicker
});
刷新页面时出现以下错误
错误:Tempus Dominus Bootstrap4要求moment.js。在Tempus Dominus Bootstrap4的JavaScript之前,必须包含Moment.js。
从这里
// ../tempusdominus-bootstrap-4.js
if (typeof moment === 'undefined') {
throw new Error('Tempus Dominus Bootstrap4\'s requires moment.js. Moment.js must be included before Tempus Dominus Bootstrap4\'s JavaScript.');
}
因此,显然我的矩变量未定义。我更改了app.js文件以在控制台中呈现时刻
//../assets/js/app.js
import $ from 'jquery';
import 'bootstrap';
import moment from 'moment';
//import 'tempusdominus-bootstrap-4';
$(function () {
console.log("type of moment = "+ typeof(moment));
});
获得以下答案:
力矩类型=函数
moment
已定义,那么为什么tempusDominus没有检测到它?
答案 0 :(得分:0)
答案来自github仓库here
我在此处复制邮件:
您将moment
模块导入到webpack捆绑的JS文件中。
导入的moment
实例在运行时可用(这就是为什么console.log
可以使用),但是对于依赖全局对象来使用的非模块库(例如tempusdominus
)来说,全局实例不可用它。
使用@symfony/webpack-encore
,您可以使用Encore的.autoProvideVariables()
方法轻松提供全局变量:
Encore
.autoProvideVariables({
// Update those to your needs
$: 'jquery',
moment: 'moment'
})
;