Laravel 5和Elixir - 指向错误的目录

时间:2015-04-08 17:21:22

标签: laravel-5 laravel-elixir

我有一个简单的脚本来组合样式:

elixir(function(mix) {
    mix.styles([
        'bootstrap.min.css',
        'font-awesome.css',
        'animate.css',
        'style.css'
    ], "public/frontend/css");
});

我的所有css文件都在public/frontend/css目录中,我将styles函数的第二个参数设置为该基数,但是如果我运行gulp,我得到:

[19:18:22] Starting 'default'...
[19:18:22] Starting 'styles'...
[19:18:22] Merging: resources/css/css/bootstrap.min.css,resources/css/public/frontend/css/font-awesome.css,resources/css/public/frontend/css/animate.css,resources/css/public/frontend/css/style.css
[19:18:22] Finished 'default' after 196 ms
[19:18:22] File not found: resources/css/css/bootstrap.min.css
[19:18:22] File not found: resources/css/public/frontend/css/font-awesome.css
[19:18:22] File not found: resources/css/public/frontend/css/animate.css
[19:18:22] File not found: resources/css/public/frontend/css/style.css
[19:18:22] Finished 'styles' after 206 ms

因此它将基目录设置为resources/css

我该如何解决?

2 个答案:

答案 0 :(得分:3)

修改 我误解了这个问题。

mix.styles()(和mix.scripts())的第二个参数指的是输出。但它需要第三个参数,引用基本路径,所以这是你应该改变的那个,如下:

elixir(function(mix) {
    mix.styles([
        'bootstrap.min.css',
        'font-awesome.css',
        'animate.css',
        'style.css'
    ], "path/to/output.css", "public/frontend/css");
});

如果需要,您可以更改配置中的基本路径,如上所述:


在项目的根目录下创建一个elixir.json文件,然后在其上添加以下内容:

{
    "assetsDir": "public/frontend/"
}

你应该好好去。

只是为了提供更多信息,无论何时需要覆盖默认配置,都要在此文件中执行此操作。 默认配置是:

var config = {
    production: !! util.env.production,
    srcDir: 'app',
    assetsDir: 'resources/assets/',
    cssOutput: 'public/css',
    jsOutput: 'public/js',
    sourcemaps: ! util.env.production,
    bowerDir: 'vendor/bower_components',
    tasks: [],
    watchers: { default: {} },
    duplicate: [],
    concatenate: { css: [], js: [] },
    compile: {}
};

来自node_modules/laravel-elixir/Config.js

答案 1 :(得分:1)

您应该将custom base directory传递给第三个参数,而不是第二个参数。

合并自定义基本目录(Ref

中的样式表
elixir(function(mix) {
    mix.styles([
        "normalize.css",
        "main.css"
    ], 'public/build/css/everything.css', 'public/css');
});