gpt4 book ai didi

css - gulp-sass includePaths 未能包含供应商 scss(也可能是订购问题)

转载 作者:太空宇宙 更新时间:2023-11-04 10:02:31 24 4
gpt4 key购买 nike

我的应用程序 sass(在 scss 文件中)在我的 styles 目录中的各个子目录中,其中一些 @extend 来自不同供应商的 sass 样式,(通过 bower ) 位于 vendor 目录下的各个子目录中。

不幸的是,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;

这可能是顺序问题?

最佳答案

我分享的内容是基于我对您的问题的理解。我将从一个新元素的 Angular 来讨论它,这对我来说似乎工作得很好。

假设我们有一个名为 sassy 的元素,其中有一个通过运行以下命令创建的 package.json 文件:

npm init -y

然后我们将像这样安装 Gulp 和 SASS 组件:

npm install gulp gulp-sass -save-dev

在元素根目录的 Gulpfile.js 中,我们有以下代码:

var gulp = require('gulp');
var sass = require('gulp-sass');

gulp.task('sass', function () {
return gulp
.src("./scss/**/*.scss")
.pipe(sass({includePaths: ['./vendor']}))
.pipe(gulp.dest("./dist"));
});

您可能从上面的代码中猜到,我们在元素的根目录下有一个vendor 目录和一个scss 目录。

因为我不知道您的vendor 目录中有什么,所以我随机填充了我的目录。在 vendor/colors.scss 文件中,我有以下内容:

.danger {
color: red;
}

.light {
color: silver;
}

我还在 vendor/sizing/article.scss 找到了一个嵌套文件,其中包含以下代码:

.title {
font-size: 22px;
}

现在让我们看看我的 scss 目录里有什么。

我有一个 scss/main.scss 文件,其中包含如下两个导入语句:

@import "./sidebar/navigation";
@import "./content/blog";

同样,这个元素的所有内容都是随机的。我只是想展示所有这些文件和目录的构建过程。

我的 scss 文件夹中还有两个 SCSS 文件。我有一个包含以下代码的文件 scss/sidebar/navigation.scss:

nav {
padding: 10px;
}

我终于有了一个包含大量导入和扩展的文件。此文件是 scss/content/blog.scss,它包含以下内容:

@import "colors";
@import "sizing/article";

.title {
@extend .danger;
@extend .title;
font-weight: bold;
}

因为 Gulp 脚本包含 vendors 目录,我们可以对任何文件使用相对路径。我们从 vendor 目录导入这两个文件,然后在必要时扩展各种类。

运行 gulp sass 将在元素的 dist 目录中构建 CSS 文件。由于我只使用 scss/main.scss 进行导入,它将包含我们所有的样式。

这就是你想要做的吗?如果是,请浏览我刚刚分享的所有内容,看看它是否适合您。

关于css - gulp-sass includePaths 未能包含供应商 scss(也可能是订购问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38247863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com