尝试使用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:未定义粘滞
这里的任何帮助将不胜感激。
答案 0 :(得分:1)
尝试将其分配给全局对象,如下所示:
window.Sticky = require('sticky-js');
PS: 我看不到您的供应商中包含任何jQuery。尝试将其添加到您的vendor.js
window.$ = window.jQuery = require('jquery');
确保在package.json
中包含了jQuery和sticky作为依赖项。