Я пробую Laravel Elixir и хочу включить загрузчик с помощью includePaths, но он не работает. Куда я иду не так?
var paths = {
'bootstrap': './vendor/bower_components/bootstrap-sass-official/assets/'
}
elixir(function(mix) {
mix.sass("style.scss", 'public/assets/css/', {includePaths: [paths.bootstrap + 'stylesheets/']})
});
Я не уверен, есть ли причина, по которой вы хотите включить includePaths в свой файл gulpfile, но для начальной загрузки вам это не нужно. Путь включения начальной загрузки уже настроен из коробки в / node_modules / laravel-elixir / ингридиенты:
elixir.extend('sass', function(src, output, options) {
options = _.extend({
outputStyle: inProduction ? 'compressed' : 'nested',
includePaths: [elixir.config.bowerDir + "/bootstrap-sass-official/assets/stylesheets"]
}, options);
return compile({
compiler: 'Sass',
pluginName: 'sass',
pluginOptions: options,
src: src,
output: output,
search: '**/*.+(sass|scss)'
});
});
Так что все, что вам нужно сделать, это в вашем gulpfile:
elixir(function(mix) {
mix.sass("style.scss");
});
И тогда в вашем стиле .scss:
@import "bootstrap";
Я думаю, что вы должны установить свой файл .bowerrc на:
{
"directory": "vendor/bower_components"}
но похоже, что вы уже сделали это.
Я знаю, что у этого уже есть принятый ответ, но я получил что-то вроде этого, чтобы работать.
var paths = {
'bootstrap': '/bower_components/bootstrap-sass/assets/',
}
elixir(function (mix) {
mix.sass('app.scss', 'public/css', {
includePaths: [
__dirname + paths.bootstrap + 'stylesheets/'
]
});
mix.version("css/app.css");
});
куда bower_components
устанавливается в корневой директории laravel.
(От: https://laracasts.com/discuss/channels/requests/gulpfile-elixir-merge-scss-includepaths)
Другое решение использует эту строку для компиляции sass или меньшего количества файлов, находящихся в папке вашего поставщика:
mix.less("../../../vendor/twbs/bootstrap/less/bootstrap.less");
Примечание: я использовал «composer Требуется twbs / boostrap», чтобы получить полный пакет. Не нужна беседка.
Редактировать:
Я вывожу скомпилированный файл CSS в папку ресурсов, чтобы объединить его с другими файлами CSS:
mix.less("../../../vendor/twbs/bootstrap/less/bootstrap.less", 'resources/css');mix.styles([
"bootstrap.css"], 'public/css/app.css');