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
答案 0 :(得分:1)
如果它对某人有帮助,laravel-mix有一个//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');
函数,可以用于css和js文件:
mix.scripts(...)
如果每个文件的加载顺序对您来说很重要,那么最好使用{{1}}或其他选项。
我刚在这里找到它:https://laracasts.com/discuss/channels/laravel/mix-combine-all-js-in-folder。
答案 1 :(得分:0)
只需使用.extract()
方法。
<强> e.g 强>:
mix
.js('resources/assets/js/app.js', 'public/js/app.js')
.extract([
'jquery',
]);
如果您不使用CommonJS require
或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');
不要忘记在你的html中注入vendor.js
文件:
<script src="{{ mix('js/vendor.js') }}"></script>