gpt4 book ai didi

sass - Gulpfile.js - 如何在 gulp.watch 上获取 .min.css、.css 和 .css.map 文件?

转载 作者:行者123 更新时间:2023-12-01 06:50:57 25 4
gpt4 key购买 nike

好的,我对此进行了大量研究,但是在一个 drupal 站点上,我有一个 zurb 基础主题并且对它非常满意。我遇到的唯一问题是自定义 scss 组件时。我正在使用 gulp 编译它,它正在重新创建 css 文件。但是,我想让它也给我 min.css 文件和 css.map 文件,但我似乎无法弄清楚。我在 gulpfile.js 上尝试了许多不同的迭代,但这是我的最新版本。

它只生成 css 文件。

  var sassFiles = './themes/zurb_foundation/scss/**/*.scss',
cssDest = './themes/zurb_foundation/css';

gulp.task('styles', function(){
gulp.src(sassFiles)
.pipe(sourcemaps.init())
.pipe(autoprefixer())
.pipe(gulp.dest(cssDest))
.pipe(sass({outputStyle: 'expanded'}).on('error', sass.logError))
.pipe(gulp.dest(cssDest))
.pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))
.pipe(rename({ extname: 'min.css' }))
.pipe(sourcemaps.write('./themes/zurb_foundation/css'))
.pipe(gulp.dest(cssDest))
});

gulp.task('watch', function() {
livereload.listen();
gulp.watch(sassFiles, ['styles']);
})

我终于得到它产生以下错误:
CssSyntaxError: /Users/USERNAME/Desktop/SITEFOLDER/ROOTDIR/themes/zurb_foundation/scss/foundation.scss:1:1: Unknown word
You tried to parse SCSS with the standard CSS parser; try again with the
postcss-scss parser> 1 | // Foundation by ZURB

我想在这一点上,我的问题是我应该如何设置我的 gulpfile 来处理 postcss-scss 解析?

最佳答案

所以首先我们将必要的包声明为 const因为这些值不应该改变它们的分配。

const gulp = require('gulp');
const sass = require('gulp-sass');
const sourcemaps = require('gulp-sourcemaps');
const cssmin = require('gulp-cssmin');

然后我们编写一个名为sass的gulp任务,在其中搜索 .scss中的styles文件夹中的所有文件。格式。

我们检查并记录任何错误,我们创建源映射,允许浏览器将 SASS 生成的 CSS 映射回原始源文件(如果您想以这种方式使用 .scss/ .css)。

然后我们写你的新 .css文件到 public/styles文件夹。
gulp.task('sass', function () {
return gulp.src('./styles/*.scss')
.pipe(sourcemaps.init())
.pipe(sass().on('error', sass.logError))
.pipe(sourcemaps.write('./maps'))
.pipe(gulp.dest('./public/styles'));
});

之后,我们编写了第二个名为 minify-css 的 gulp 任务。 .

我们在 .css 中查找所有文件格式在我们的样式文件夹中。

首先,我们自动为所有 css 属性添加前缀。例如,如果您有一个已设置的 css 类:
user-select: none;

自动前缀将处理添加:
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;

之后我们缩小,连接,然后将我们新的缩小的 css 文件命名为 main.min.css然后将其保存在 public/styles文件夹。
gulp.task('minify-css', function(){
gulp.src(['./styles/*.css'])
.pipe(autoprefixer({
browsers: ['last 2 versions']
}))
.pipe(cssmin())
.pipe(concat('main.css'))
.pipe(rename("main.min.css"))
.pipe(gulp.dest('./public/styles'));
});

然后我们编写一个名为 build 的任务,所以要同时调用 sassminify-css只需运行 gulp build 即可按时间顺序执行任务在终端。
gulp.task('build', [‘sass’, ‘minify-css’]);

关于sass - Gulpfile.js - 如何在 gulp.watch 上获取 .min.css、.css 和 .css.map 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46881288/

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