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

Laravel 9(Vite)中如何在其他脚本调用app.js导入的moment.js?

Laravel 9 + Vite 全局使用 Moment.js 报错解决

问题场景

使用默认Vite作为打包工具的Laravel 9.48.0,执行npm install moment --save安装moment.js后,在app.js中通过import moment from 'moment/moment';导入,仅能在app.js内部正常调用,在其他脚本中访问时触发错误:

Uncaught ReferenceError: moment is not defined

解决方法

Vite基于ES模块机制运行,导入的模块默认仅在当前文件作用域内生效。要让moment全局可访问,只需像挂载Alpine一样,将其绑定到window对象上。

修改app.js代码,在导入moment后添加全局挂载语句:

import './bootstrap';

import Alpine from 'alpinejs';
import focus from '@alpinejs/focus';
import moment from 'moment/moment';

window.Alpine = Alpine;
window.moment = moment; // 新增此行,将moment挂载到全局

Alpine.plugin(focus);
Alpine.start();

console.log(moment().format('MMMM Do YYYY, h:mm:ss a'));

修改完成后,无论是页面内的独立<script>标签,还是其他Vite打包的脚本文件,都能直接调用moment方法。如果在Livewire组件中使用,确保页面已正确加载Vite打包的app.js资源。


相关配置文件参考

vite.config.js

import { defineConfig } from 'vite';
import laravel, { refreshPaths } from 'laravel-vite-plugin';

export default defineConfig({
    plugins: [
        laravel({
            input: [
                'resources/css/app.css',
                'resources/js/app.js',
            ],
            refresh: [
                ...refreshPaths,
                'app/Http/Livewire/**',
            ],
        }),
    ],
});

package.json

{
    "private": true,
    "scripts": {
        "dev": "vite",
        "build": "vite build"
    },
    "devDependencies": {
        "@alpinejs/focus": "^3.10.5",
        "@tailwindcss/forms": "^0.5.2",
        "@tailwindcss/typography": "^0.5.0",
        "alpinejs": "^3.0.6",
        "autoprefixer": "^10.4.7",
        "axios": "^1.1.2",
        "laravel-vite-plugin": "^0.7.2",
        "lodash": "^4.17.19",
        "postcss": "^8.4.14",
        "tailwindcss": "^3.2.4",
        "vite": "^4.0.0"
    },
    "dependencies": {
        "moment": "^2.29.4"
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 11:21:02