Laravel Elixir / Less包含路径作为文件夹

时间:2015-06-17 20:34:06

标签: less laravel-5 laravel-elixir

我一直在寻找,但找不到将文件夹添加到less include路径的方法。或"名称空间"它

基本上不是" bootstrap"像这样完成:

pip install pysqlite

就像

elixir(function(mix) {
    mix.less('app.less', 'public/css/', {
        paths: [
            paths['bootstrap'] + 'less/'
        ]
    });
});

所以如果我想在我的应用程序中调用bootstrap,那就是:

elixir(function(mix) { mix.less('app.less', 'public/css/', { paths: { 'bootstrap': paths['bootstrap'] + 'less/' } }); });

这样做的原因是包含多个较少的资源有时会导致多个文件具有相同的名称。

那么无论如何都要手动移动文件吗?

3 个答案:

答案 0 :(得分:2)

不,没有办法在Less或派生工具中创建目录别名(了解你的操作系统是否有这样的......很多人都这样做)。此外,您始终可以使用variables in @import statements,例如:

@bootstrap: "...bla-bla-bla/bootstrap-5.2.8/less"; // can be set via compiler options as well

@import "@{bootstrap}/bootstrap";

答案 1 :(得分:0)

我的gulpfile

elixir(function(mix) {
    mix.sass('app.scss', 'public/css/', {includePaths: [
        'path/to/bower/components'
    ]});
});

然后包括这样的供应商:

@import "bootstrap-sass/assets/stylesheets/bootstrap";
@import "fontawesome/scss/font-awesome";

希望我帮助过你。

答案 2 :(得分:0)

我找到了神奇的答案,虽然seven-phases-max非常接近,但这只是一个完整的版本。

mix.less的第三个变量用于插件选项,这意味着任何插件for less和modifyVars都可用于核心。

所以:

elixir(function(mix) {
    mix
        .less('app.less', 'public/css/', {
            modifyVars: {
                'bootstrap': '"' + path.resolve(__dirname) + paths['bootstrap'] + 'less/' + '"'
            }
        })
});

奇怪的是必须用"换行,但当它添加变量时,它会将其添加为原始。

其余的使用其他答案,但您可以使用

@import "@{bootstrap}/bootstrap";