5

Laravel Elixir に問題があります.version('xxxxxx.js')。何らかの理由で、js ファイルを使用できないか、バージョン管理された複数の js ファイル.versionに加えて、または複数の js ファイルを使用できないように見えます。.css

elixir(function(mix) {

    /**
     * My Less
     */

    mix.less('app.less').version('public/css/app.css');

    /**
     * Vendor Scripts
     */

    mix.scripts([
        'jquery/dist/jquery.js'
    ], 'public/js/vendor.js', 'resources/assets/bower_components/').version('public/js/vendor.js');

    /**
     * My Scripts
     */

    mix.scripts(['app.js','app2.js'], 'public/js/app.js', 'resources/assets/scripts').version('public/js/vendor.js');

});

私のlaravel-elixirの設定は次のとおりです:

var config = {
    production: !! util.env.production,
    srcDir: 'app',
    assetsDir: 'resources/assets/',
    cssOutput: 'public/css',
    jsOutput: 'public/js',
    bowerDir: 'resources/assets/bower_components',
    tasks: [],
    watchers: { default: {} },
    duplicate: [],
    concatenate: { css: [], js: [] }
};
4

3 に答える 3

1

また、バージョン管理の問題もあり、現在、エリクサーのバージョン管理にバグがあることがわかりました。(注: 執筆時点では、Elixir バージョン <= v0.14.0)

多くのファイルを連結すると (または出力ファイルが大きい可能性が高い)、残りのファイルと一緒にバージョン管理されないように見えます。

個別に実行できるようgulp versionで、バージョン管理されます。この問題が発生している場合、gulpまたはgulp watch実行しない場合があります。

これが私のgulpファイルです。vendor.jsはコンパイルされていましたが、バージョン管理されていませんでした。バージョン管理されている最後のファイルでさえありません。

var elixir = require('laravel-elixir');

elixir(function(mix) {

    mix.sass('app.scss')

    .scripts([
        'react/react-with-addons.min.js',
        'jquery/dist/jquery.min.js',
        'bootstrap-sass-official/assets/javascripts/bootstrap.js'
    ], 'public/js/vendor.js', 'resources/assets/bower')

    .scripts(['app.js'], 'public/js/app.js', 'resources/assets/js')

    .version([
        'css/app.css',
        'js/vendor.js',
        'js/app.js'
    ]);

});

gulp versionその後実行すると、バージョンが作成されます。

アップデート:

これは修正されているようです >= v0.14.2

于 2015-03-21T07:58:42.160 に答える
1

私の質問には 2 つの問題があり、BeS のソリューションは機能しましたが、複数のベンダー ファイルを連結すると別の問題が発生しました。

  1. mix.less と mix.scripts は非同期で呼び出されます。手続き的に考えていました。
  2. @BeS が述べたように、最後に version を 1 回呼び出す必要があります。

私の解決策 - BeS の解決策の組み合わせですが、メソッドをチェーンするように修正され、すべてのスクリプトなどを確実に呼び出す前に連結されています.version

elixir(function(mix) {

    mix.less('app.less')
        .scripts([
           'jquery/dist/jquery.js',
           'other.js',
           'another.js'
        ], 'public/js/vendor.js','resources/assets/bower_components/')
        .scripts(['app.js','app2.js'], 'public/js/app.js', 'resources/assets/scripts')
        .version(['public/css/app.css', 'public/js/app.js', 'public/js/vendor.js']);
});
于 2015-02-09T07:34:33.737 に答える