我目前的resources/assets
目录的结构与普通目录略有不同,因为我希望在我的项目中有一些“主题”。
目前我有以下结构:
resources/assets/theme-one/scss/*
resources/assets/theme-one/coffee/*
和
resources/assets/theme-two/scss/*
resources/assets/theme-two/coffee/*
现在我正在尝试使用Elixir构建我的gulpfile.js
(目前主题为1),我正在尝试为我的SASS文件指定输入目录。
var elixir = require('laravel-elixir');
elixir(function(mix) {
mix.sass(['app.scss'], 'public/theme-one/css/app.css');
});
当然,上面的代码默认会查看resources/assets/sass
目录,但我想告诉它查看resources/assets/theme-one/scss
目录。
我尝试了各种不同的组合试图让它发挥作用,但似乎无论我尝试什么,Elixir / gulp-sass总是试图查看resources/assets/sass
并得到{{ 1}}错误。
我试过了:
File not found: resources\assets\sass\app.scss
相关的文件的完整路径,即gulpfile.js
resources/assets/theme-one/scss/app.scss
和完整路径(从评论和app.scss
中第97行开始的代码前缀./
参数1,解释为路径前缀{{1} 1}}基本上会跳过前缀)我根本没有运气。有什么想法吗?
我能想到的唯一“解决方案”是将我的项目结构改回Elixir想要的方式,即有GulpPaths.js
和./
等,但这不是我想做的事情。如果所有其他方法都失败了,我想我可以直接使用Elixir并按原样使用gulp。
修改
我现在尝试更改resources/assets/sass/theme-one/app.scss
中的resources/assets/coffee/theme-one/app.coffee
配置项,如下所示:
assetsPath
我仍然得到gulpfile.js
答案 0 :(得分:3)
您可以覆盖Elixir的default config(公共和资产):
//in your gulp file :
var elixir = require('laravel-elixir');
elixir.config.assetsPath = "resources/assets/theme-one";
elixir.config.publicPath = "public/theme-one";
elixir(function(mix) {
mix.sass('app.scss');
});
elixir.config.assetsPath = "resources/assets/theme-two";
elixir.config.publicPath = "public/theme-two";
elixir(function(mix) {
mix.sass('app.scss');
});
请注意,对于Elixir的旧版本(3.0之前),您需要覆盖config,如下所示:
elixir.config.assetsDir = "resources/assets/theme-one";
elixir.config.publicDir = "public/theme-one";
正如Jonathon
的评论所指出的那样