一个简单的Gulp' y的工作流程
钥匙要点
- 大量的工作流可以改善大型铁轨项目中的SASS汇编时间,远离资产管道并拥抱Libsass的速度。
- gulp工作流程包括使用libsass的SASS编译,生成sourcemaps,以更容易调试,将CSS与AutopReFixer一起前缀,并使用SASSDOC生成Sass Document。 >可以通过添加监视样式显示器更改以重新编译的手表任务来进一步优化工作流程,从而消除了每个文件保存后手动运行SASS任务的需求。
- >可以创建一个用于部署到生产的“产品”任务,该任务以压缩模式编译了SASS,带有AutoPrefixer的前缀CSS,再生SASSDOC文档,并避免使用任何sourcemaps。
- >我最近负责优化相当大的铁路项目的萨斯一侧,最重要的事情之一就是改善汇编时间。由于存在SASS架构以及Ruby Sass(在这种情况下通过Rails Asset Pipeline)在处理大量文件时往往会很慢,因此编译样式表的最多可能需要40秒钟。谈论快速开发过程。 :)
在这篇简短的文章中,让我们快速浏览如何建立大量的工作流程以与Sass合作。这是我们将包括的内容:
毫不奇怪,用libsass
汇编
生成sourcemaps,以便更轻松的调试- >用自动旋转器前缀CSS 用sassdoc
- 生成sass文档
- 编译SASS 观看Atoz:Sass 通过信函学习萨斯
- 观看此课程 观看此课程 >要做的第一件事是安装依赖项并创建Gulpfile.js。我们将需要吞噬(不屎,夏洛克),但也需要散发出我们的样式表:
>该行告诉NPM将Gulp和Gulp-Sass软件包同时安装作为开发依赖项。现在,您可以在软件包的devDecondies.json中找到它们。和gulpfile.js:

哇,那很短。我们现在需要的是
$ <span>npm install gulp gulp-sass --save-dev</span>
在我们的stylesheets文件夹上运行sass(实际上是gulp-sass)。
$ <span>npm install gulp gulp-sass --save-dev</span>
添加Sourcemaps
<span>var gulp = require('gulp'); </span><span>var sass = require('gulp-sass');</span>
>我们在SitePoint上有一篇关于Sourcemaps的精彩文章。如果您对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比手工编写供应商更好(或使用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>
- 我们可以使用自己的配置这样:
- 释放文档!
- >最后但并非最不重要的是用sassdoc添加我们的工作流程文档生成的工具。 SASSDOC是要解决JSDOC的JavaScript:文档工具。它可以解析您的样式表寻找评论块,记录变量,混音,功能和占位符。 如果您的项目使用SASSDOC(应该!),则可以在Gulp Workflow中添加自动文档生成。
- SASSDOC的酷炫事物是可以将其直接输送到Gulp中,因为它的API是兼容的。因此,您实际上没有Gulp-sassdoc插件。请注意,根据您的项目的大小和已记录的项目数量,SassDoc最多可以运行几秒钟(据我所知,很少超过3个)为此单独任务。
$ <span>npm install gulp gulp-sass --save-dev</span>
登录后复制登录后复制登录后复制<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>
登录后复制登录后复制<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>
登录后复制登录后复制添加最终触摸
最后但重要的是要考虑的事情:在默认任务中运行sass。$ <span>npm install gulp-sourcemaps --save-dev</span>
登录后复制登录后复制>。
>此外,我们可能可以创建一个可以在部署到生产之前直接运行的产品任务(也许是用git钩)。此任务应:><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文档
- 避免任何sourcemaps
- 最终想法
- 就是伙计们!在短短几分钟和几行JavaScript中,我们设法创建了一个强大的小小的Gulp工作流程。您可以在此处找到完整的文件。你会添加什么?
- > 经常询问有关GULP和SASS Workflow的问题(常见问题解答)
以安装项目的Gulp和Sass,您需要在计算机上安装Node.js和NPM。一旦拥有这些功能,就可以通过在终端中运行命令NPM安装命令NPM安装-Global Gulp-CLI来全局安装GULP。之后,导航到您的项目目录并运行NPM INIT创建一个package.json文件。然后,通过运行NPM安装-Save-Dev Gulp-Sass。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文件,以使用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目录中获取所有.scss文件,使用Gulp-sass将其编译为CSS,然后输出所得的CSS文件您的CSS目录。
如何观看SASS文件中的更改并自动编译它们?
现在,每当您将.scss文件保存在SASS目录中时,“ SASS”任务都会自动运行并将SASS文件编译到CSS中。>如何处理SASS文件中的错误?
>
GULP提供了一种名为Watch的方法,您可以使用该方法在更改文件时可以自动运行任务。这是您可以修改“ SASS”任务以查看更改的方法:
gulp.task('sass',function(){gulp.watch('./ sass/*)*/*。 ['sass']);
});在编译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文件:var cleancss = require('gulp-clean-css');
.pipe(cleancss({compatibility:compatibility:compatibility: 'ie8'})))gulp.task('kinify-css','nimify-css',', ()=> { return gulp.src('styles/*。css') .pipe(gulp.dest('dist''));
});
>
此任务将在您的样式目录中使用所有.css文件Gulp-clean-css,并在您的DIST目录中输出所得的CSS文件。
以上是一个简单的Gulp&#x27; y的工作流程的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

JavaScript是现代Web开发的基石,它的主要功能包括事件驱动编程、动态内容生成和异步编程。1)事件驱动编程允许网页根据用户操作动态变化。2)动态内容生成使得页面内容可以根据条件调整。3)异步编程确保用户界面不被阻塞。JavaScript广泛应用于网页交互、单页面应用和服务器端开发,极大地提升了用户体验和跨平台开发的灵活性。

Python和JavaScript开发者的薪资没有绝对的高低,具体取决于技能和行业需求。1.Python在数据科学和机器学习领域可能薪资更高。2.JavaScript在前端和全栈开发中需求大,薪资也可观。3.影响因素包括经验、地理位置、公司规模和特定技能。

如何在JavaScript中将具有相同ID的数组元素合并到一个对象中?在处理数据时,我们常常会遇到需要将具有相同ID�...

学习JavaScript不难,但有挑战。1)理解基础概念如变量、数据类型、函数等。2)掌握异步编程,通过事件循环实现。3)使用DOM操作和Promise处理异步请求。4)避免常见错误,使用调试技巧。5)优化性能,遵循最佳实践。

实现视差滚动和元素动画效果的探讨本文将探讨如何实现类似资生堂官网(https://www.shiseido.co.jp/sb/wonderland/)中�...

JavaScript的最新趋势包括TypeScript的崛起、现代框架和库的流行以及WebAssembly的应用。未来前景涵盖更强大的类型系统、服务器端JavaScript的发展、人工智能和机器学习的扩展以及物联网和边缘计算的潜力。

深入探讨console.log输出差异的根源本文将分析一段代码中console.log函数输出结果的差异,并解释其背后的原因。�...
