2017-06-20 68 views
1

这个我/laravel/webpack.mix.js内容:订购需要脚本/用laravel混合和依赖的WebPack

mix 
     .js([ 
      'resources/assets/js/jquery.js', 
      'resources/assets/js/plugin.js' 
      ], 'public/js/my_app.js'); 

/resources/assets/js/jquery.js内容是:

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

内容是这样写的本地代码:

(function($) { 

    // plugin script 

})(jQuery); 

当plugin.js脚本被写入本地(如上),这是在加载my_app.js BEFORE的jQuery(例如plugin.jsTHENjQuery的

但是

当我使用“require”或“import”指令直接从 node_modules **中提取plugin.js,例如require('plugin')写在plugin.js,顺序是OK的jquery.js加载第一THENplugin.js

我的问题:

我要加载的jquery.js前plugin.js。

那么,当plugin.js是一个本地脚本时,如何尊重订单EVEN?

+0

有没有人是ab乐解决这个问题,因为我与夏季笔记和jQuery有同样的问题。 –

回答

0

Laravel混合提供功能,您可以将供应商库提取到vendor.js。但是您必须确保您的应用程序代码app.js在您的vendor.js之后被调用。

<script src="/js/manifest.js"></script> 
<script src="/js/vendor.js"></script> 
<script src="/js/app.js"></script> 

参考 - https://laravel.com/docs/5.4/mix#vendor-extraction

+0

感谢您的回答。但是当我尝试你的解决方案时,它告诉我Bootstrap需要jQuery。 我的提取命令: 。提取物([ '的jquery', '自举-萨斯', '的jquery-UI', 'jQuery的UI/UI /效应', 'jQuery的UI/UI /部件/自动完成', “jquery- ui/widgets/datepicker', 'jquery-ui/ui/widgets/menu', 'tipsy/src/javascripts/jquery.tipsy', ])。 与HTML视图相同的顺序 – Azodium

+0

我尝试了mix.autoload和mix.extract()。它解决了“bootstrap需要jquery”的问题,但仍然存在主要问题:/ – Azodium

0

的.extract电话后,加

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

所以,

mix.js(...).extract(...).autoload(...); 

编辑:刚才看到你的回应,你试过这种

+0

你好,谢谢你的回答:),但正如我之前说过的,我尝试了mix.autoload和mix.extract()。它解决了“引导需要JQuery”的问题,但仍然存在主要问题:/(本地脚本VS需要插件)。很抱歉,刚刚看到你的回复,你看到我试过这个:D – Azodium