1

Laravel 5.4 引入了 laravel-mix。
使用 elixir,我有一项任务将所有供应商文件加载到一个特定的文件中:

elixir(function (mix) {
  mix.stylesIn('public/vendor/css', 'public/css/vendor.css');

  mix.scriptsIn('public/vendor/js', 'public/js/vendor.js');
}

可以用 laravel-mix 做同样的事情吗?

使用mix.js('/path/to/folder', 'public/js/vendor.js')我得到一个错误:

Error: EISDIR: illegal operation on a directory
4

2 回答 2

2

如果它对某人有帮助,laravel-mix 有一个combine功能,可以用于 css 和 js 文件:

//js files
mix.combine(['path/to/folder/js/*'], 'public/js/combined.js');

//and

//css files
mix.combine(['path/to/folder/css/*'], 'public/css/combined.css');

如果每个文件的加载顺序在您的情况下很重要,那么最好使用mix.scripts(...)或其他选项。

我刚刚在这里找到它:https ://laracasts.com/discuss/channels/laravel/mix-combine-all-js-in-folder 。

于 2017-03-07T13:56:38.163 回答
0

简单的使用.extract()方法。

例如

mix
    .js('resources/assets/js/app.js', 'public/js/app.js')
    .extract([
        'jquery',
    ]);

如果您不使用 CommonJSrequire或 ES2015 import,并且将所有库捆绑在一个文件中,则可以使用.js()方法:

mix
    .js('resources/assets/js/vendor.js', 'public/js/vendor.js');

您还可以使用以下方式连接文件.scripts()

mix.scripts([
    'public/js/admin.js',
    'public/js/dashboard.js'
], 'public/js/all.js');

不要忘记vendor.js在您的 html 中注入文件:

<script src="{{ mix('js/vendor.js') }}"></script>
于 2017-03-06T23:52:27.683 回答