2017-05-15 14 views
3

私は実際にjsライブラリを動作させることはできませんが、以前は私が使用しているライブラリごとに別々のjsファイルを用意することにしました(jquery.jsファイルとブートストラップ私のレイアウトに含ま.jsファイル)は、すべてが私はこの混乱にjqueryの-UIを追加する必要がありましたまでうまく働いていた、と私は同じファイルで、jQueryとjQueryの-UIをロードするまで、このエラーlarvel mixを使用してjs依存関係を含める

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

を得ました。問題は、私はjqueryを含めたいと思っています。私はjqueryを含んでいます。beacuse私は2ページしか使用しません。

jqueryの-ui.slider.js:私は私のコードを配置します以下は

require('jquery-ui/ui/widgets/slider'); 
require('./components/carFilter.js'); 

app.js:

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

webpack.mix.js:

mix.js('resources/assets/js/app.js', 'public/js') 
mix.js('resources/assets/js/jquery-ui.slider.js', 'public/js'); 

私は、次のNPMモジュールを使用しています:

  • ブートストラップ-SASS
  • jqueryの
  • jqueryの-UI
+0

もしこのような質問を掘り下げたいのであれば、ここに審判があります。https://webpack.js.org/guides/code-splitting-async/ – Chay22

+0

@ Chay22に感謝します。私はそれを投稿します –

答えて

1

私は、そのコードの下 ...、私はjqueryの必要ファイルを作成することで、終わったbootstrap.js、その後、私は2つのページの特定のファイルで、このファイルが必要になります。

app.js

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

page.js

require('./app.js') 
require('jquery-ui/ui/widgets/slider'); 

すべてのビューにjsファイルを含める必要がある場合でも、現在は機能しています。質問はまだ開いていますが、私はsomoneがより良い考えを持っていることを願っています。

0

私は条件が満たされたとき、あなたは次のように、jqueryの-UIをロードすべきだと思います。

if (window.loadJQueryUI) { 
    require('jquery-ui'); 
} 

そして、あなたはこのように、2ページ分のloadJQueryUIを初期化する必要があります:

<script type="text/javascript"> 
    window.loadJQueryUI = true; 
</script> 
関連する問題