【发布时间】:2016-07-07 14:17:51
【问题描述】:
我的应用程序 sass(在 scss 文件中)位于我的 styles 目录中的各个子目录中,其中一些来自各个供应商的 @extend sass 样式(通过 bower)位于下的各个子目录中供应商目录。
不幸的是,sass 任务无法获取那些供应商 scss 文件和我失败的任何 @extend 声明,因为他们找不到他们试图扩展的 sass,例如
Error in plugin 'sass'
Message:
styles/censum/censum.scss
Error: ".graph-row" failed to @extend ".row".
The selector ".row" was not found.
Use "@extend .row !optional" if the extend should be able to fail.
on line 2 of styles/censum/censum.scss
我最小化的例子如下。
gulp.task('sass', function () {
gulp.src('./styles/**/*.scss')
.pipe(gulpSass({ includePaths: ['./vendor'] }).on('error', gulpSass.logError));
});
我还尝试将供应商目录添加到 gulp.src 并且不使用 includePaths,例如
gulp.task('sass', function () {
gulp.src(['./vendor/**/*.scss', './styles/**/*.scss'])
.pipe(gulpSass().on('error', gulpSass.logError));
});
这似乎确实引用了供应商文件(因为它拖了我猜的所有内容),但我确实遇到了以下问题:
Message:
vendor/bower/eonasdan-bootstrap-datetimepicker/src/sass/_bootstrap-datetimepicker.scss
Error: Undefined variable: "$btn-primary-bg".
on line 7 of vendor/bower/eonasdan-bootstrap-datetimepicker/src/sass/_bootstrap-datetimepicker.scss
$bs-datetimepicker-active-bg: $btn-primary-bg !default;
这可能是订购问题?
【问题讨论】:
-
嗯,我想知道 includePaths 是否不会递归子目录?它似乎表明它在文档中确实如此
-
您是在导入供应商文件还是尝试直接扩展它们?
-
事实证明其意图是导入其中的一些。