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

Laravel 5 and Elixir - point to wrong directory

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

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

我该如何解决?

编辑 我看错了问题。

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

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

合并自定义基目录中的样式表(Ref)

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