没有使用Laravel Mix

时间:2019-07-11 22:59:02

标签: npm webpack laravel-mix

尝试使用Laravel Mix为我的应用程序包含node_modules。对此不是很有经验

我正在尝试包含sticky.js,但始终在控制台中获取消息:

  

未捕获的ReferenceError:未定义粘滞

这是我的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';

和其他刀片文件中调用的scripts.blade.php文件:

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

考虑到我也收到以下消息,我已经检查了jQuery是否正在加载,并且它似乎正在加载:

  

jQuery.Deferred异常:未定义粘滞ReferenceError:未定义粘滞

这里的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

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

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

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

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

确保在package.json中包含了jQuery和sticky作为依赖项。