在这篇简短的文章中,让我们快速浏览如何建立大量的工作流程以与Sass合作。这是我们将包括的内容:
毫不奇怪,用libsass
汇编
生成sourcemaps,以便更轻松的调试哇,那很短。我们现在需要的是
$ <span>npm install gulp gulp-sass --save-dev</span>任务
在我们的stylesheets文件夹上运行sass(实际上是gulp-sass)。
$ <span>npm install gulp gulp-sass --save-dev</span>就是这样!现在,由于一项非常小的Gulp任务,我们可以使用Libsass来编译样式表。那呢?我们可以将选项传递给Gulp-sass,以在扩展模式下编译样式表,并在控制台中打印错误:
添加Sourcemaps
<span>var gulp = require('gulp'); </span><span>var sass = require('gulp-sass');</span>到目前为止,一切都很好。现在,生成Sourcemaps呢?如果您不知道什么是Sourcemaps,它基本上是一种用扩展的开发来源绘制压缩生产源的方式,以使调试实时代码更加容易。它们根本不限于CSS,也可以在JavaScript中使用Sourcemaps。
好吧,因此,要在我们的任务中添加SourceMaps生成,我们需要安装Gulp-Sourcemaps:
现在,让我们优化我们的任务:
默认情况下,Gulp-Sourcemaps在编译的CSS文件中写入Sourcemaps。根据项目设置的不同,我们可能需要在单独的文件中写入它们,在这种情况下,我们可以在sourcemaps.write.write()函数中指定相对于gulp.dest()目标的路径。
<span>var input = './stylesheets/**/*.scss'; </span><span>var output = './public/css'; </span> gulp<span>.task('sass', function () { </span> <span>return gulp </span> <span>// Find all `.scss` files from the `stylesheets/` folder </span> <span>.src(input) </span> <span>// Run Sass on those files </span> <span>.pipe(sass()) </span> <span>// Write the resulting CSS in the output folder </span> <span>.pipe(gulp.dest(output)); </span><span>});</span>>将AutopReFixer带到派对
>我不会详细介绍为什么使用AutoPrefixer比手工编写供应商更好(或使用Mixin(基本上是同一件事)更好),但是粗略的AutopReFixer是一个后处理步骤基于最新数据库和给定配置的样式表添加相关前缀。换句话说,您告诉您要支持的autoprefixer,它仅在样式表中添加相关的前缀。零努力,完美的支持(请提醒我为此插图申请专利)。
<span>var sassOptions = { </span> <span>errLogToConsole: true, </span> <span>outputStyle: 'expanded' </span><span>}; </span> gulp<span>.task('sass', function () { </span> <span>return gulp </span> <span>.src(input) </span> <span>.pipe(sass(sassOptions).on('error', sass.logError)) </span> <span>.pipe(gulp.dest(output)); </span><span>});</span>>
要在我们的Gulp’y工作流中包括自动旋转器,我们只需要在SASS完成它的工作后才需要
$ <span>npm install gulp-sourcemaps --save-dev</span>首先,让我们安装它(您现在就可以得出要点):
然后我们将其添加到我们的任务中:
>现在,我们使用autoprefixer的默认配置运行,
浏览器的市场份额超过1%,所有浏览器的最后2个版本,
<span>var gulp = require('gulp'); </span><span>var sass = require('gulp-sass'); </span><span>var sourcemaps = require('gulp-sourcemaps'); </span> <span>// ... variables </span> gulp<span>.task('sass', function () { </span> <span>return gulp </span> <span>.src(input) </span> <span>.pipe(sourcemaps.init()) </span> <span>.pipe(sass(sassOptions).on('error', sass.logError)) </span> <span>.pipe(sourcemaps.write()) </span> <span>.pipe(gulp.dest(output)); </span><span>});</span>
> firefox ESR,
gulp<span>.task('sass', function () { </span> <span>return gulp </span> <span>.src(input) </span> <span>.pipe(sourcemaps.init()) </span> <span>.pipe(sass(sassOptions).on('error', sass.logError)) </span> <span>.pipe(sourcemaps.write('./stylesheets/maps')) </span> <span>.pipe(gulp.dest(output)); </span><span>});</span>Opera 12.1
$ <span>npm install gulp gulp-sass --save-dev</span>请注意,根据您的项目的大小和已记录的项目数量,SassDoc最多可以运行几秒钟(据我所知,很少超过3个)为此单独任务。
<span>var gulp = require('gulp'); </span><span>var sass = require('gulp-sass');</span>
再次,我们使用默认配置,但是如果愿意,我们可以使用自己的配置。
<span>var input = './stylesheets/**/*.scss'; </span><span>var output = './public/css'; </span> gulp<span>.task('sass', function () { </span> <span>return gulp </span> <span>// Find all `.scss` files from the `stylesheets/` folder </span> <span>.src(input) </span> <span>// Run Sass on those files </span> <span>.pipe(sass()) </span> <span>// Write the resulting CSS in the output folder </span> <span>.pipe(gulp.dest(output)); </span><span>});</span>我正在看着你
>在离开之前,我们仍然可以做些什么:创建手表任务。该任务的目的是注意样式表的更改以再次重新编译它们。在项目的Sass侧工作时非常方便,因此您不必每次保存文件时都可以手工运行SASS任务。
<span>var sassOptions = { </span> <span>errLogToConsole: true, </span> <span>outputStyle: 'expanded' </span><span>}; </span> gulp<span>.task('sass', function () { </span> <span>return gulp </span> <span>.src(input) </span> <span>.pipe(sass(sassOptions).on('error', sass.logError)) </span> <span>.pipe(gulp.dest(output)); </span><span>});</span>
添加最终触摸
$ <span>npm install gulp-sourcemaps --save-dev</span>最后但重要的是要考虑的事情:在默认任务中运行sass。
>作为任务(..)函数的第二个参数传递的数组是依赖关系任务的列表。基本上,它告诉Gulp在运行指定为第三个参数(如果有)之前运行这些任务。
在压缩模式下编译SASS
<span>var gulp = require('gulp'); </span><span>var sass = require('gulp-sass'); </span><span>var sourcemaps = require('gulp-sourcemaps'); </span> <span>// ... variables </span> gulp<span>.task('sass', function () { </span> <span>return gulp </span> <span>.src(input) </span> <span>.pipe(sourcemaps.init()) </span> <span>.pipe(sass(sassOptions).on('error', sass.logError)) </span> <span>.pipe(sourcemaps.write()) </span> <span>.pipe(gulp.dest(output)); </span><span>});</span>>
>带有autoprefixer的前缀CSS
再生sassdoc文档
gulp<span>.task('sass', function () { </span> <span>return gulp </span> <span>.src(input) </span> <span>.pipe(sourcemaps.init()) </span> <span>.pipe(sass(sassOptions).on('error', sass.logError)) </span> <span>.pipe(sourcemaps.write('./stylesheets/maps')) </span> <span>.pipe(gulp.dest(output)); </span><span>});</span>以安装项目的Gulp和Sass,您需要在计算机上安装Node.js和NPM。一旦拥有这些功能,就可以通过在终端中运行命令NPM安装命令NPM安装-Global Gulp-CLI来全局安装GULP。之后,导航到您的项目目录并运行NPM INIT创建一个package.json文件。然后,通过运行NPM安装-Save-Dev Gulp-Sass。
来编译SASS文件,以使用Gulp编译SASS文件,需要创建一个Gulp任务。在您的Gulpfile.js中,您可以创建一个名为“ SASS”的任务,该任务将您的SASS文件编译为CSS。这是一个如何执行此操作的简单示例:
var gulp = require('gulp');
var sass = require('gulp-sass');
gulp.task ('sass',function(){
return gulp.src('./ sass/** /*。scss')
.pipe(sass()。on('error',sass.logerror))
.pipe(gulp.dest('./ css'));
}) ;
如何观看SASS文件中的更改并自动编译它们?
>
GULP提供了一种名为Watch的方法,您可以使用该方法在更改文件时可以自动运行任务。这是您可以修改“ SASS”任务以查看更改的方法:
gulp.task('sass',function(){
});
在编译SASS文件时,您可能会遇到语法错误。您可以使用Gulp-Sass提供的ON方法处理这些错误。这是您可以将“ SASS”任务修改为记录错误的方法:
gulp.task('sass',function(){ return gulp.src('./ sass/**/*。 scss')
.pipe(sass()。on('error',sass.logerror))
>如何使用Gulp缩小我的CSS文件?
缩小CSS文件,您可以使用GULP插件称为Gulp-Clean-CSS。首先,通过运行NPM安装-Save-dev Gulp-Clean-CSS将其安装在项目中。然后,您可以创建一个任务,该任务将缩小您的CSS文件:
.pipe(gulp.dest('dist''));
});
>
此任务将在您的样式目录中使用所有.css文件Gulp-clean-css,并在您的DIST目录中输出所得的CSS文件。
以上是一个简单的Gulp&#x27; y的工作流程的详细内容。更多信息请关注PHP中文网其他相关文章!