我只是在阅读克里斯·费迪南迪(Chris Ferdinandi)的帖子-Is it time to drop Sass?-我想谈谈这个话题。
克里斯被称为“香草JS家伙”。他使用JavaScript并避免了许多工具。在嘈杂的前端世界中,这种逆势意见很重要,该世界不断推动特定框架和工具的使用。正如马克·吐温(Mark Twain)所说:“每当您发现自己站在大多数方面时,就该改革(或停下来反射)了。”
>为什么要丢下萨斯?
克里斯在他的帖子中说了以下内容:
我已经使用了十年了,但是最近,我想知道是否该放弃它并继续前进了。
本文中的论点是,CSS现在几乎具有 He 使用Sass的所有功能。我猜最近添加了CSS,这促使了这篇文章。 Chris缺少的一个确切功能是koude0 declaration将不同部分文件的样式捆绑到一个文件中。
Chris使用ESBuild Bundler来解决缺点。 Esbuild可以将CSS文件捆绑到一个CSS文件中。 Esbuild可以将您的本地嵌套CSS转换为“ Flat” CSS-这很重要,因为嵌套当前不在Firefox中。因此,借助埃斯(Esbuild),克里斯(Chris)为他的萨斯(Sass)提供了奇偶校验。 mixins和inheritance等其他SASS功能不吸引Chris。
坦率地说,这些似乎都不是违反交易的人。我认为是时候去香草CSS
了
克里斯所说的话是CSS已经成长了很多,这减少了达到CSS预处理器的需求。能够在CSS上做更多的事情是一件好事。但是,克里斯正在使用一种工具(Esbuild)而不是另一个工具(SASS)来获得相同的结果。这是向前迈出的一步吗?
让我们从另一侧看它。
你为什么不丢下萨斯?
我想放大片刻,并提出关于在前端世界中选择技术的更一般性的观点。
戴夫·布什尔(Dave Bushell)也写了关于CSS在recent post中筑巢的文章,他还得出结论,他不再需要Sass。他说以下内容:
再见!
使用这些更新,我不再需要SASS预处理器。让这样有用的工具走了,有点难过。我使用的Sass比我记得的时间更长。
这种思想的必然是将技术描绘成一次性商品。它项目“是的!最后CSS拥有最好的Sass。让我们Chuck Sass”。感知是您可以快速切换,并且以低成本进行切换。
另一个方面是,选择技术通常被认为是互斥的:Sass 或 CSS。这可能会导致错误的决定。
我看到SASS,其他CSS预处理器,CSS后处理器和CSS是网络上的主要构建块。您不会更换房屋中的砖块,只是因为另一块砖以便宜的价格提供了类似的好处。您为什么会这样考虑CSS?
一种技术的进步并不意味着您将停止以路线的方式使用另一种技术。既定技术是许多现有网站的一部分。替换诸如Sass之类的东西可能是一项艰巨的任务。由于Sass blog points out:天然CSS嵌套与Sass嵌套均无兼容。明智的做法是至少在过渡之前了解差异!
您不能在SASS文件中使用本机嵌套。这使得渐进的开关变得困难。您将需要替换每个SASS文件以进行完整的过渡。由于与嵌套有细微的差异,它不仅是跨文件的发现和重新安置操作,而且还有其他您在项目中使用的SASS语法。
当David Bushell在他的个人网站上用CSS取代Sass时,它要求他参加restructure his list styles。确保正确完成的工作是相当多的工作。完全在现有网站上从SASS过渡到CSS有什么好处?
在短期内,唯一的重大好处可能是您的构建过程得到了简化。到达那里的费用。您必须学习一些新事物,并且需要工作才能正确设置设置。
如果您正在建立一个新网站,那么这是另一个主张。您的约束和更多的自由。选择CSS预处理器或CSS是开放的。您的选择取决于其他决策,以及您可能希望使用的其他工具。
如今,您想建立一个表演者网站,您可能会使用一些工具建立步骤。不需要任何工具,而是要缩放网站,很难放弃所有工具,这将是很棒的。这就是为什么在工具链中使用少的工具似乎向前迈出的一步。我认为这是人们追逐的主要利益。我认为零工具的灵丹妙药可能会闪烁。
问自己进行更改有什么好处?
通常,替换工具不会使用户受益。收益在您身边。您的收益应该足够大,以至于用户可以看到一个好处,因为它使您能够以优越的方式交付。在某些情况下,您只是在学会在其他地方做同样的事情。如果您认为像SASS这样的工具是可置的,则很快就会再次重复此过程。
我提出的问题是,放下工具更好,还是丢下这种思维方式更好?
让人想起吉斯
jQuery的故事与Sass的故事相似。 JQuery帮助迎来了建立可靠的网站和Web应用程序的时代。它提供了用于与DOM合作的一致的跨浏览器API。最终导致了ECMAScript采用的一部分API。我们可以感谢JQuery的koude1。
当React接管前端世界时,JQuery在某些方面受到了愤怒。开发了一种视图(PARDON the the the the the the the the the the the the the the the the the the the the chump of chump,the the pun)。某些人将使用jQuery和React视为相互排斥的决定。您要么是一种时尚的声明猫(React Camp),要么是一只刺耳的命令恐龙(JQuery)。它有一个部落的方面。它具有时尚的反复无常 - 这个季节我们正在摇摆不定。
react和jQuery不同。您 都可以构建与两者的Web接口。但是,jQuery有一个更广泛的应用程序,这是当时的产物。它并非旨在解决复杂状态和用户交互的问题空间。它关注的是在浏览器中改善DOM操纵,动画,事件和Ajax。人们使用jQuery建造了大量的公用事业和小部件,因为他们想要一个令人愉悦的API,并且在任何地方都可以使用。它具有出色的互操作性。网络平台确实解决了许多互操作性问题。
可以理解的是,人们不经常使用jQuery来构建用户界面。人们选择该任务的UI框架。我认为JQuery是在那个时代与React一起在对话中长大的,这是因为他们庞大的受欢迎程度和广泛的采用,而不是作为如何构建出色的Web应用程序的深思熟虑的辩论。现在,人们的首选构建用户界面是反应,您会发现有些人因为太肿而而是在反应,与水疗中心有关,等等!这是一个典型的周期。
今天,jQuery仍然使用了很多。人们不仅重建了使用jQuery的一切,因为出现了一些“更好”的东西。根据W3Techs的说法,截至2022年8月,jQuery is used by 77% of the 10 million most popular websites。我不知道那个数字有多可靠,这比我预期的要多,但是我所说的是,技术的坚持比人们想象的要长得多,或者喜欢承认。这些天,人们喜欢将其归类为技术债务。您不会更换网站Willy Nilly的核心构建块。
无论您对Sass的想法是什么,值得一提的是徒劳的萨斯。不要使其成为一个受欢迎的竞赛,也不要在使用一个或另一个的部落冲突中进行冲突。认识哪些技术擅长并相应地使用它们。如果您想进行更改,请意识到,如果您进行大爆炸,可能会很麻烦。
CSS和CSS预处理器具有共同的目的,但它们也满足不同的需求。 SASS是CSS的超集,类似于打字稿和JavaScript。它有一个编译步骤,提供了CSS不提供的内容。 CSS预处理器非常擅长避免重复和表达更复杂的设计模式。 CSS预处理器可以创建不需要浏览器实现任何内容的新功能。它们可以成为创新的矢量。 Sass正在不断发展。
您可以重建您的个人网站以使用CSS,而不是今天使用SASS,但是您不太可能很快在工作场所做同样的事情。回报太小,风险太大,无法打扰企业。这个上下文很重要。
结束思想
我认为您应该选择适合您项目要求的工具,这些工具为用户带来了很好的结果,并且最适合您。
我鼓励您删除“/或”技术周围的“或”心态。不要谈论丢弃工具,谈论更喜欢工具。对于某些任务或项目类型,也许更适合适合。让我们重点讨论为什么您会在适当的上下文和细微差别的情况下选择另一件事。
CSS已经走了很长一段路。 CSS采用的嵌套部分是由于SASS中该功能的成功。当其他工具采用一些使其出色的东西时,让我们提供出色的工具,而不是签署死亡证明。有一个偏好是很好的,但是您不必对不是 en vogue 的其他技术不屑一顾。您不能在这里和那里都没有逐步改善自己。有太多的事情发生了变化,提供的东西太多了。
我很长一段时间以来都使用Sass进行原型制作和创意编码。我不会很快看到自己在现有项目中取代Sass。我会以不同的方式考虑CSS,因为它正在发展,因为它正在发展。在我的书中一切都很好。我将在不同情况下使用它们!用法不是互斥的!