You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 10 + Vite环境下如何让dayjs全局可访问?

Laravel 10 + Vite下dayjs全局访问报错的解决办法

1. 先把dayjs的挂载代码写对

打开resources/js/app.js,按下面的方式导入并挂载,要是用到dayjs插件的话也得一起处理:

import dayjs from 'dayjs';
// 举个例子,如果你要用到自定义格式解析插件,得先导入再扩展
import 'dayjs/plugin/customParseFormat';

dayjs.extend(window.dayjs_plugin_customParseFormat);

// 把dayjs挂载到全局window上
window.dayjs = dayjs;

2. 必须保证脚本加载顺序

你的页面自定义<script>标签,一定要放在Vite生成的app.js之后加载。比如在布局模板里:

<!-- 先加载Vite打包的app.js -->
@vite(['resources/js/app.js'])

<!-- 再写你自己的页面脚本 -->
<script>
  // 这里就能正常调用dayjs了
  const formattedDate = dayjs('01/05/2024', 'DD/MM/YYYY').format('YYYY-MM-DD');
  console.log(formattedDate);
</script>

要是你的自定义脚本跑在Vite脚本前面,这时候dayjs还没挂载到window,肯定会报dayjs is not defined。

3. 清缓存解决热更新异常

Vite热更新偶尔会出缓存问题,试试这几步:

  • 关掉Vite服务,删掉public/build文件夹
  • 重新执行npm run dev或者npm run build
  • 清空浏览器缓存再刷新页面

4. 检查全局挂载是否生效

打开浏览器控制台直接输入window.dayjs,要是返回函数就说明挂载成功了。要是提示“dayjs is not a function”,大概率是缓存导致旧代码没更新,或者你代码里有别的地方修改了window.dayjs变量。

你之前误写成windows.dayjs()报错,那是拼写错误(应该是window不是windows),但这个错误提示也说明window上的dayjs可能不是正常的函数类型,核心还是加载顺序或者缓存的问题。

内容的提问来源于stack exchange,提问作者Ray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 10:47:25