3

我正在尝试 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/']})
});
4

3 回答 3

0

我不确定您是否有理由在 gulpfile 中执行 includePaths,但对于引导程序,您不必这样做。引导程序包含路径已经在 /node_modules/laravel-elixir/ingredients 中进行了开箱即用的配置:

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");
});

然后在你的 style.scss 中:

@import "bootstrap";

我认为您必须将 .bowerrc 文件设置为:

{
  "directory": "vendor/bower_components"
}

但看起来你已经这样做了。

于 2015-02-11T04:19:47.473 回答
0

我知道这已经有一个公认的答案,但我得到了这样的工作。

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_componentslaravel 根目录安装在哪里。

(来自:https ://laracasts.com/discuss/channels/requests/gulpfile-elixir-merge-scss-includepaths )

于 2015-04-29T12:25:29.853 回答
-1

另一种解决方案是使用这一行来编译位于您的供应商文件夹中的 sass 或更少的文件:

mix.less("../../../vendor/twbs/bootstrap/less/bootstrap.less");

注意:我使用“composer require twbs/boostrap”来获取完整的包。不需要凉亭。

编辑:

我将编译后的 css 文件输出到资源文件夹以将其与其他 css 文件结合起来:

mix.less("../../../vendor/twbs/bootstrap/less/bootstrap.less", 'resources/css');


mix.styles([
    "bootstrap.css"
], 'public/css/app.css');
于 2015-02-21T12:35:39.767 回答