2017-01-31 5 views
0

Laravel 5.3のscriptsIn機能を使用して、assets/jsのすべてのJavascriptファイルを結合します。私はこのような構造でのjsファイルを書き込むことがAngularJS 1.xのフレームワークを使用します。Laravel 5.4のscriptsIn関数はどこにありますか?

--resources\ 
-----assets\ 
--------js\ 
-----------app.js 
-----------controllers\ 
-----------------....js 
-----------directives\... 

私はすべてのjsはLaravel 5.3にエリクサーを持つファイル結合:

elixir(function(mix) { 
    mix.sass('app.scss'); 
    mix.scriptsIn('resources/assets/js'); 
}); 

しかし、私はLaravel 5.4にアップグレードしたときに、エリクサーはサポートされていません。代わりに、Laravel Mixが使用されます。したがって、scriptsInは利用できません。 Laravel 5.4に同じ目的の関数はありますか?すべてのjsファイルを結合するには?

+0

'scriptsIn()'の機能について教えてください。 – PaladiN

+0

が役に立つかもしれません。https://laravel.com/docs/5.4/helpers –

+0

@PaladiN:assets/jsフォルダ内のすべてのjsファイルとサブフォルダをapp.jsに結合し、public/jsフォルダに入れたい場合 –

答えて

0

あなたのコメントからわかるように、すべてのJSファイルを最初にapp.jsに追加してからpublic/app.jsにコピーします。これを実行するにはa basic exampleがあります。

例からコードを抜き出しています。それがために使用するのと同じくらい簡単です:

let mix = require('laravel-mix'); 

mix.sass('src/app.sass', 'dist') 
    .js('src/app.js', 'public'); 
  1. ./public/app.sass
  2. にサスファイル、./src/app.sassを、コンパイルバンドルすべてのJavaScript(および任意の必要なモジュール)./public/app.jsから./src/app.jsで。

パスをディレクトリ構造として変更できます。これはあなたを助けるはずです。

Webpack.mix.jsのコードを使用する必要があります。 Laravel 5.4で更新された設定ファイルを見ることができます。

編集:

は私がずっとAngularjsを経験していないが、私たちはクラスを作成し、それをエクスポートする必要がありAngular2といくつかの経験を持っているとのWebPACKが自動的にそれのバンドルにコードおよびバンドルのチャンクを取得します.js。

あなたはangularjsとWebPACKのために提供されるこれらのソリューションを見ている可能性があり:5.4

elixir(function(mix) { 
    mix.sass('app.scss'); 
    mix.scriptsIn('resources/assets/js'); 
}); 

に更新する際

https://stackoverflow.com/a/26497742/3887342

https://stackoverflow.com/a/27500432/3887342

+0

をご覧ください。私はAngularjsを使用しています。私は 'var mainApp = angular 'を入れます。app.jsのモジュール( 'mainApp'、[...]) 'とコントローラ(たとえば' mainApp.controller( 'somethingCtrl'、...) ')を別々のファイルに置き換えます。このコントローラをapp.jsにインポートするコードはありません。 'Laravel Mix'でバンドルする前にapp.jsにそれらを要求する方法を知っていますか? –

0

はちょうど同じ問題に遭遇しました

const { mix } = require('laravel-mix'); 

mix.sass('app.scss') 
    .combine('resources/assets/js'); 
関連する問題