繁体   English   中英

使用Webpack的Laravel-Mix:JQuery不会自动加载

[英]Laravel-Mix using webpack: JQuery is not autoloaded

我正在尝试使用Laravel-Mix编译我的Laravel项目,但遇到一个问题,即使使用mix.autoload指令,jQuery也无法在浏览器中自动加载:

bootstrap.min.js:6未捕获的错误:Bootstrap的JavaScript需要bootstrap.min.js:6上的jQuery

如您所见,我在页面底部的脚本标签中包含了引导程序,而jquery是我在npm package.json中依赖项的一部分。

index.blade.php

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8"/>
        <title>Test</title>
    </head>
    <body>
        <p>Hello</p>
        <script src="assets/js/bootstrap.min.js" type="text/javascript"></script>
        <script src="{{ asset(mix('js/bundle.js')) }}" type="text/javascript"></script>
    </body>
</html>

webpack.mix.js

const { mix } = require('laravel-mix');

mix.autoload({
    jquery: ['$', 'jQuery', 'window.jQuery'],
});

mix.js(['assets/js/script.js'], 'public/js/bundle.js');

if (mix.inProduction()) {
    mix.disableNotifications();
    mix.version();
}

安装jQuery和Popper。

npm i jquery
npm i popper.js

在您的/resources/js/bootstrap.js中。

try {
    window.Popper = require('popper.js').default;
    window.$ = window.jQuery = require('jquery');

在webpack.mix.js中。

mix.js('resources/js/app.js', 'public/js')
   .sass('resources/sass/app.scss', 'public/css')

在您的Blade模板中。

<script src="{{ mix('js/app.js') }}" type="text/javascript"></script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM