Эликсир и авторефиксатор Laravel
Итак, я увидел, что эликсир не использует автоматически префикс. Вот как выглядит мой файл gulp:
var Elixir = require('laravel-elixir');
var autoprefixer = require('gulp-autoprefixer');
var gulp = require('gulp');
Elixir.config.sourcemaps = false;
gulp.task('sass', function() {
return gulp.src('resources/sass/app.scss')
.pipe(autoprefixer({
browsers: ['last 2 versions'],
cascade: false
}))
.pipe(gulp.dest('public/css/app.css'));
});
Elixir(function(mix) {
// Copy bootstrap.min.js to node vendor directory until it becomes a node module
mix.copy('public/vendor/bootstrap-4', 'node_modules/bootstrap-4');
// Combine all vendor scripts
mix.scripts([
'bootstrap-4/dist/js/bootstrap.min.js',
'vue/dist/vue.min.js'
], 'public/js/vendor.js', 'node_modules');
// Combine all files into one single CSS file
mix.task('sass', 'resources/sass/**/*.scss');
// Get rid of cached version
mix.version([
'public/js/vendor.js',
'public/css/app.css'
]);
});
Но он по-прежнему не выдает авторефиксер. Я не получаю ошибок глотка. И когда я бегу gulp watch
, он не обновляется всякий раз, когда я обновляю файл.scss. Все мои файлы sass находятся в ресурсах / sass
Спасибо за любую помощь!
Я даже попробовал:
new Task('sass', function() {
return gulp.src('resources/sass/app.scss')
.pipe(autoprefixer({
browsers: ['last 2 versions'],
cascade: false
}))
.pipe(gulp.dest('public/css/app.css'));
})
.watch('resources/sass/**/*.scss');
3 ответа
Несмотря на то, что в настоящее время недокументировано, Elixir от Laravel действительно запускает ваш CSS через Autoprefixer с его настройками по умолчанию, как это указано в файле Config.js пакета:
{
...
css: {
autoprefix: {
enabled: true,
options: {
browsers: ['last 2 versions'],
cascade: false
}
},
}
}
Чтобы настроить эту конфигурацию, вы должны использовать следующее:
elixir.config.css.autoprefix = {
enabled: true, //default, this is only here so you know how to disable
options: {
cascade: true,
browsers: ['last 2 versions', '> 1%']
}
};
elixir(function(mix) {
...
});
Использовать эту конфигурацию
var elixir = require('laravel-elixir');
config.css.autoprefix.options.browsers = ['last 15 versions'] ;
elixir(function(mix) {
mix.sass('index.scss');
});
Ваш gruntfile.js
должен выглядеть так:
var elixir = require('laravel-elixir');
elixir(function(mix) {
mix
.copy('./public/vendor/bootstrap-4', './node_modules/bootstrap-4')
.sass('app.scss')
.scripts([
'./node_modules/bootstrap-4/dist/js/bootstrap.js'
'./node_modules/vue/dist/vue.js'
], './public/js/app.js')
.version([
'css/app.js',
'js/app.css'
]);
});
Ваш resources/assets/sass/app.scss
файл должен выглядеть так:
@import "node_modules/bootstrap-4/scss/bootstrap";
Теперь у вас будет такая структура каталогов:
public/build/css/app-**********.css
public/build/css/app.css.map
public/build/js/app-**********.js
public/build/js/app.js.map
public/css/app.css
public/css/app.map
public/js/app.js
public/js/app.map.js
Звездочки будут [a-z0-9]{10}
но вы загрузите их, позвонив {{ elixir('css/app.css') }}
а также {{ elixir('js/app.js') }}
,