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

Laravel10导入Splide/jQuery后全局变量未定义问题求助

问题原因

当你在app.js中通过ES模块语法导入Splide或jQuery时,这些库的变量默认只存在于模块内部作用域,不会自动挂载到全局的window对象上。而CDN方式引入的脚本是直接在全局作用域执行的,会主动将Splide、jQuery挂载到window,所以在blade模板的脚本中能直接访问。

解决方案

1. 手动挂载到全局window对象

这是最直接的解决方式,在app.js中导入库后,将其赋值给window的属性,使其成为全局变量:

处理Splide

修改app.js的导入代码:

// 正确导入Splide类
import Splide from '@splidejs/splide';
import '@splidejs/splide/dist/css/themes/splide-default.min.css';

// 挂载到全局window
window.Splide = Splide;

处理jQuery

修改app.js的导入代码:

import $ from 'jquery';

// 同时挂载$和jQuery到全局
window.$ = window.jQuery = $;

修改后重新编译资源(npm run dev或npm run build),就能在blade模板的脚本中直接使用Splide或jQuery了。

2. 使用构建工具的全局注入插件

如果不想手动挂载,可以通过webpack/Vite的插件自动将库注入到全局作用域:

针对Webpack(Laravel Mix)

在webpack.mix.js中配置ProvidePlugin:

const webpack = require('webpack');

mix.js('resources/js/app.js', 'public/js')
    .css('resources/css/app.css', 'public/css')
    .webpackConfig({
        plugins: [
            // 全局注入jQuery
            new webpack.ProvidePlugin({
                $: 'jquery',
                jQuery: 'jquery',
            }),
            // 全局注入Splide
            new webpack.ProvidePlugin({
                Splide: ['@splidejs/splide', 'default'],
            })
        ]
    });

针对Vite

在vite.config.js中配置别名后,再执行手动挂载(Vite没有直接的ProvidePlugin等价物,手动挂载更简洁):

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

export default defineConfig({
    plugins: [
        laravel({
            input: ['resources/css/app.css', 'resources/js/app.js'],
            refresh: true,
        }),
    ],
    resolve: {
        alias: {
            jquery: 'jquery/dist/jquery.min.js',
        },
    },
});

随后在app.js中执行方案1的手动挂载步骤即可。

3. 在blade中使用模块脚本导入

如果不想污染全局作用域,可以将blade中的脚本改为模块类型,并从正确路径导入Splide:

<script type="module">
    import Splide from '/vendor/splidejs/splide/dist/js/splide.esm.js';
    new Splide( '.splide' ).mount();
</script>

这种方式需要确保导入路径正确,适合不需要全局使用库的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 19:42:39