Sticky 不是使用 Laravel Mix 定义的

Sticky is not defined using Laravel Mix

正在尝试使用 Laravel 混合来为我的应用程序包含 node_modules。对此不是很有经验

我正在尝试包含 sticky.js 但在控制台中不断收到消息:

Uncaught ReferenceError: Sticky is not defined

这是我的 webpack 文件:

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

mix.js('resources/js/vendor.js', 'public/js')
.combine([
  'resources/js/appOptions.js',
  'resources/js/scripts.bundle.js',
], 'public/js/scripts.bundle.js')
.copy('resources/js/pages/*.js', 'public/js/pages')
.copy('resources/js/plugins/', 'public/js/plugins')
.sass('resources/sass/vendor.scss', 'public/css/')
.copy('resources/css/style.bundle.css', 'public/css')
.copy('resources/css/app.css', 'public/css')
.copy('resources/css/pages/*.css', 'public/css/pages')
.webpackConfig({
    resolve: {
      modules: [
        'node_modules'
      ],
      alias: {
        jquery: 'jquery/src/jquery'
      }
    }
});

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

我的 vendor.js 文件:

import 'bootstrap';
import 'sticky-js';
import 'moment';
import 'moment-timezone';
import 'jquery-validation';
在其他 blade 文件中调用的

和 scripts.blade.php 文件:

<script src="{{ mix('/js/vendor.js') }}"></script>
<script src="{{ mix('/js/scripts.bundle.js') }}"></script>

我检查过 jQuery 是否正在加载,似乎是,因为我还收到以下消息:

jQuery.Deferred exception: Sticky is not defined ReferenceError: Sticky is not defined

如有任何帮助,我们将不胜感激。

尝试将其分配给如下全局对象:

window.Sticky = require('sticky-js');

PS: 我没有看到任何 jQuery 包含在您的供应商中。尝试将此添加到您的 vendor.js

window.$ = window.jQuery = require('jquery');

确保您已将 jquery 和 sticky 作为依赖项包含在 package.json 中。