javascript - tempus-dominus 未检测到时刻导入
问题描述
我知道有很多问题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。Moment.js 必须在 Tempus Dominus Bootstrap4 的 JavaScript 之前包含。
从这里
// ../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 没有检测到它?
解决方案
答案来自这里的github repo
我在这里复制消息:
您将moment
模块导入 webpack 捆绑的 JS 文件中。您导入moment
的实例在运行时可用(这就是您可以使用它的原因),但对于依赖全局对象来使用它console.log
的非模块库(例如 )来说,它不是全局可用的。tempusdominus
使用@symfony/webpack-encore
,您可以使用 Encore 的方法轻松提供全局变量.autoProvideVariables()
:
Encore
.autoProvideVariables({
// Update those to your needs
$: 'jquery',
moment: 'moment'
})
;
推荐阅读
- angular - 使用 OnChanges 在表中设置未定义值
- javascript - 将 Promise 的返回值注入到单独的对象中
- python - 对象中的一个参数下具有多个值
- react-native - React Native - 如何在已安装的组件上更新屏幕
- spring - SpringBoot/Kotlin:Multipart MaxUploadSizeExceededException 处理程序不会触发
- django - Django post_save 信号和 celery 任务之间可能的竞争条件
- angular - 在 Angular 中使用 Cognito 托管 UI 检索用户
- c# - 在 WPF DataGrid 中删除行和更改数据时遇到问题(使用 MySQL)
- r - 如何从 R 中的最早日期开始保留 X 个月
- php - W3 Total Cache 不断缓存非 https 页面