Laravel mix在加载后会破坏每个jquery插件

时间:2017-02-17 20:33:15

标签: laravel laravel-echo

我对laravel mix和npm都是全新的,所以我在这里完全失去了。

我正在使用jquery插件,例如:https://github.com/noraesae/perfect-scrollbar

现在,我安装了laravel mix,因为我需要laravel echo。 得到了工作和运行,但从那时起jquery插件没有加载,我得到的只是:

Uncaught TypeError: $(...).perfectScrollbar is not a function

我不知道,这可能是jquery现在加载async而Mix会覆盖我设置的那个/ div>办法? 但是,我注意到我可以通过npm安装此插件,因为文档来自:

npm install perfect-scrollbar

我做到了,它已安装,但我现在怎么可能包含它以便laravel mix加载呢?我花了最后6个小时试图寻找方法,但我无法理解如何做到这一点。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

好的......不确定我的问题出在哪里,但这里有一些你可以查看的内容......

首先,mix将运行webpack ... wbpack.mix.js ...如果你没有改变它将包含这样的东西:

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

现在,这将运行webpack并编译您的资源...在我们感兴趣的情况下,app.js.

您是否按照完美滚动条文档中的建议在app.js中添加了库(完美滚动条)?

var Ps = require('perfect-scrollbar');

你也需要照顾它的css ..通过在你的app.scss中导入...如果你在标准的laravel安装中使用sass ......

@import "node_modules/perfect-scrollbar/src/css/main.scss"

重建,如果你使用Ps作为完美的滚动条对象,你应该好好去。你也可以把它添加到窗口中......比如window.Ps = require ...

npm install只需在node_modules目录中安装该软件包。在那里,您必须将它们导入已编译的css和js应用程序文件。

希望这有帮助。