2017-06-20 55 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