В настоящее время у меня есть каталог resources/assets
, структурированный немного иначе, чем обычный, поскольку я хочу иметь несколько «тем» в моем проекте.Укажите каталог ввода для Laravel Elixir/SASS
В настоящее время у меня есть следующие структуры:
resources/assets/theme-one/scss/*
resources/assets/theme-one/coffee/*
И
resources/assets/theme-two/scss/*
resources/assets/theme-two/coffee/*
Теперь я пытаюсь построить мой gulpfile.js
с помощью эликсира (для темы-один в настоящее время), и я пытаюсь укажите каталог ввода для моих файлов SASS.
var elixir = require('laravel-elixir');
elixir(function(mix) {
mix.sass(['app.scss'], 'public/theme-one/css/app.css');
});
Конечно, приведенный выше код будет выглядеть в каталоге resources/assets/sass
по умолчанию, но я хочу сказать ему, чтобы посмотреть в каталоге resources/assets/theme-one/scss
вместо этого.
Я пробовал всевозможные комбинации, чтобы попытаться заставить его работать, но кажется, что независимо от того, что я пытаюсь, Elixir/gulp-sass всегда пытается посмотреть в resources/assets/sass
, и я получаю ошибки File not found: resources\assets\sass\app.scss
.
Я пробовал:
- Добавление третьего параметра, указав каталог ввода
- Указания полного пути к файлу по отношению к моим
gulpfile.js
т.е.resources/assets/theme-one/scss/app.scss
- Переключения круглого второй и третьей параметры
- Копаем в исходный код (https://github.com/laravel/elixir/blob/master/tasks/sass.js и https://github.com/laravel/elixir/blob/master/GulpPaths.js), чтобы выяснить, как указать каталог ввода.
- Приставки
app.scss
в параметре 1 с./
и полным путем (Из комментария и код, начинающийся в строке 97 вGulpPaths.js
, объясняя, что префиксы пути с./
бы по существу пропустить префиксы)
I «Мне не повезло. Есть идеи?
Единственное «решение», о котором я мог подумать, - это изменить структуру проекта обратно на то, как Эликсир хочет его, то есть resources/assets/sass/theme-one/app.scss
и resources/assets/coffee/theme-one/app.coffee
и т. Д., Но это не то, что я хочу сделать. Если все остальное терпит неудачу, я полагаю, я мог бы просто бин Эликсир и просто использовать глоток, как есть.
Редактировать
Я теперь попытался изменить пункт assetsPath
конфигурации в моем gulpfile.js
так:
var elixir = require('laravel-elixir');
elixir.config.assetsPath = "resources/assets/theme-one";
elixir.config.publicPath = "public/theme-one";
elixir(function(mix) {
mix.sass(['app.scss']);
});
Я все еще получаю File not found: resources/assets/sass/app.scss
Спасибо за ваш ответ. Я пробовал то, что вы предложили, и все еще получаю 'File not found: resources/assets/sass/app.scss'. Я обновлю свой вопрос с моим текущим 'gulpfile.js' – Jonathon
Попробуйте использовать' mix.sass ('app.scss'); 'без скобок. Хорошо работает для меня – shempignon
Ничего, я выяснил проблему. У меня должна быть более старая версия Elixir. Мой конфиг имеет опции 'assetsDir' и' publicDir', а не 'assetsPath' и' publicPath'. Если вы обновите свой вопрос, чтобы упомянуть эти два возможных варианта, я отвечу на ваш ответ :) – Jonathon