我有一个简单的脚本来组合样式:
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
。
我该如何解决?
答案 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');
});