title: 后台大哥请进一步:使用Visual Studio编译scss和souce map实现前后端的完美结合

date: 2020-06-28

sidebarDepth: 2

tags:

  • windows
  • Visual studio
  • scss
  • css

    categories:
  • 开发
  • 微软技术
  • windows

CSS设计是一种禅道,既是项目质量的体现,也是团队协同标尺,更是项目精益化的卓越体验,而微软的Visual studio工具完美支持现代软件研发,其单元测试、回归测试、云端发布、现代编译思维,无不敏捷的表现在细节之中,关键在于我们如何取用。

作为一名全栈开发者,十余年专注web前端研发,逐浪CMS发哥渴望上进,并认为:

  • 技术适当向前一步、储备足够的新技术,
  • 实施则适当退后、确保足够的兼容并蓄

    这是软件实施与研发的“天人合一”。

然而,作为一名开发者,仅仅只专注于本身技术,而不能对全栈生态有着良好的把握,在现代软件开发或者工程实施中,这也许远远不够。

何为scss

简单的说,scss就是一种css的预编译技术,它可以实现css参数引用以及快速写作。

与之相近的技术,还有lessstylus等。

目前scss是业界最流行的css预编译标准,包括在bootstrap诸多项目中,都提供了面向scss的支持。

如同我们所知识的,scss默认是不能直接使用的,需要预编译,比如使用ruby等技术进行编译,相关知识可以访问

什么是Source map

简单说,Source map就是一个信息文件,里面储存着位置信息。也就是说,转换后的代码的每一个位置,所对应的转换前的位置。

现代软件开发中,CSS和JavaScript脚本正变得越来越复杂。大部分源码(尤其是各种函数库和框架)都要经过转换,才能投入生产环境。

而引用了Source map技术后,可以方便我们快速检索源码,提升开发效率。

下图演示了引用Source map后,在chrome浏览器调试中,快速定位css在scss中源的方法:

关于Source map技术可以访问 https://www.z01.com/help/web/3207.shtml 获得进一步的完整信息。

引入scss和统一全局css的必要性

css是一种禅

基于scss管理css,可以使网站的前端表现得到分层化的管理,从而提升整个项目的代码质量。

CSS设计是一种禅道,既是项目质量的体现,也是团队协同标尺,更是项目精益化的卓越体验,而微软的Visual studio工具完美支持现代软件研发,其单元测试、回归测试、云端发布、现代编译思维,无不敏捷的表现在细节之中,关键在于我们如何取用。

css是一种管理思想

基于统一的scss管理,实现类名、样式、规范统一,可以使站点质量提升。

在Zoomla!逐浪CMS的研发和项目开发中,我们始终恪求交付用的包括完整的.mapscss,这样的好处是,客户可以快速的进行二次开发,并由此溯源--即使大多客户并不认识现代化的node编译与生产。

css是一种团队精神

统一的css和scss,代表了高技术的团队融合和步调一致,在逐浪CMS的开源库中,我们可以看到自主的逐浪CMS内核与zico图标库完美的结合,提升软件的质量。

css是一种产品质量观

统一css和scss,就是统一产品规范,如果一个网站连css都不能规范,做到哪,就抄到哪,显然是没有质量的。

在推进CSS规范与标准化的路上,著名css布道师张鑫旭关于“CSS设计理念”,是目前业界的一座丰碑,而逐浪CMS是实施的标杆。

可以想象,那种没有层级、规范、规划的项目,做到哪里就写到哪里、到处链接<style>.....的代码,就跟到处拉屎的鸟一样,是一件让人头疼的事,也不值得推崇。

比上不足,比下自我踌躇

这里需要提一下,当前中国web开发或者软件研发中的一种不良风气,我们称它为“比上不足、自比正我踌躇。

这种风气一般的表现是:

  • 当你要某人做一个前端呈现,托辞:我是做后台的,前端不感兴趣。
  • 当你要他写一个算法,托辞:我主要兴趣在前端,后端算法都是公开的啦,随便去github看看就知道了。
  • 当你要他发个内容或写文档,托辞是:我是做全栈开发的,文档写作不是特长。
  • 当你要他写好一个功能模块,托辞则是:我做好了功能,你安排一个好的前端,产品没做好是前端的责任。

于是,我们看到,这些人捧着不要重复造轮子,日复一日的做着低效的开发,做纯正的大自然搬运工

具体在本案中,就表现在很多Visual Studio开发者,只满足于简单的使用工具本身,而不会去充分认识时代的变化,去迎接改变。

其实作为微软,很早就认识到了web的改变,引入组件、扩展,并从Visual Studio 2013开始就支持各种开源包、移动开发和单页应用。

在Visual Studio中引入scss和souce map开发,其实是很简单,重要的是迈出开发者的关键一步,知行合一。

不幸的是,不少微软开发者在visual studio之上,明明掌握着最优秀的设计工具,却说:这需要第三方设计工具才能解决,我只是一个做后台的,无法对scss实现编译,这和我无关。

这也无关,那也无关,一关,就到项目鬼门关,这也是本文对话后台大哥的缘由。

开始Visual Studio的scss和souce map开发之旅

好了,下面开始Visual Studio的scss和1souce map`开发之旅。

其实,要实现这个功能很容易,只要在visual studio中安装Web Compiler插件即可。

Web Compiler,顾名思义,就是web编译器的意思,其说明上也介绍了支持less、scss、stylus、jsxs等编译。

点击扩展-管理扩展,搜索:Web Compiler插件,安装,上手。

如果你在这里安装不成功,或需要完整的文档,可以访问微软visual studio 扩展应用市场下载,地址是:

https://marketplace.visualstudio.com/items?itemName=MadsKristensen.WebCompiler

安装成功后,让我们来看编辑,只要建立一个scss文件,点击右键就能编译了,快捷键:Shift+ALT+Q

进一步优化scss及自动发布

开发者只要根据官方文档指引,在项目根目录建立一个compilerconfig.json文件,就能自动编译scss并实现source map的输出。

下面是compilerconfig.json文件的基本格式,忙的同学可以直接拿去用:

[
{
"outputFile": "output/site.css",
"inputFile": "input/site.less",
"minify": {
"enabled": true
},
"options": {
"sourceMap": true
}
},
{
"outputFile": "output/scss.css",
"inputFile": "input/scss.scss",
"minify": {
"enabled": true
},
"options": {
"sourceMap": true
}
},
{
"outputFile": "Content/style.css",
"inputFile": "Content/style.scss",
"minify": {
"enabled": true
},
"options": {
"sourceMap": true
}
}
]

这样,你在写作scss时,就再也不需要头痛其编译麻烦了,同时也能与前端同事和谐共处,让代码效率更加严谨,落霞与孤鹜齐飞,岂不美哉?

技术多学点:Visual Studio插件所在目录

# VS2010默认位置
C:\Users\Administrator\AppData\Local\Microsoft\VisualStudio\10.0\Extensions
# vs2019的默认位置
C:\Users\[用户名]\AppData\Local\Microsoft\VisualStudio\16.0_a8e79a7c\Extensions

后台大哥请进一步:使用Visual Studio编译scss和souce map实现前后端的完美结合的更多相关文章

  1. Visual Studio 编译项目失败,提示找不到文件

     博客地址:http://blog.csdn.net/FoxDave 今天碰到了一个蠢问题,虽然咱们正常情况下是遇不到的,但这确实是个应该注意的地方,所以简单记录一下. Visual Studio ...

  2. Windows 使用 Visual Studio 编译 caffe

    说明:最近看 caffe 发现在 github 上下载的源码没有windows版本的,需要自己生成项目文件才能用 Visual Studio 编译,这里记录一下生成Windows项目文件的方法以及编译 ...

  3. Visual Studio 编译后去掉只读属性

    Visual Studio 编译后去掉只读属性 attrib $(TargetPath) -R attrib $(TargetDir)$(TargetName).pdb -R

  4. 打开VS2015提示“重新启动处于挂起状态。请在启动Visual Studio”之前重新启动

    昨晚安装了VS2015,今天打开VS2015提示[“重新启动处于挂起状态.请在启动Visual Studio”之前重新启动] 这里重新启动指的是重启电脑 解决方法: 电脑需要重启电脑

  5. Visual Studio 编译Winform程序不生成.vshost.exe和.pdb文件的方法

    问题:使用Visual Studio编译工程时,默认设置下,即使选择了「Release」时也会生成扩展名为「.vshost.exe」和「.pdb」的文件. 先解释一下各个文件的作用: .pdb文件: ...

  6. Visual Studio编译Core程序部署到linux

    一.背景 随着微软拥抱开源,推出Net Core框架,目前已经支持跨平台,能部署到Linux.MacOS.Windows等系统上. 下面我们就来分享一下Visual Studio编译好的代码部署到Li ...

  7. Win8下Visual Studio编译报“无法注册程序集***dll- 拒绝访问。请确保您正在以管理员身份运行应用程序。对注册表项”***“的访问被拒绝。”问题修正(转)

    原来在Win7下Visual Studio跑的好好的程序,现在在Win8下编译报“无法注册程序集***dll- 拒绝访问.请确保您正在以管理员身份运行应用程序.对注册表项”***“的访问被拒绝.”的错 ...

  8. Visual Studio 编译信息细度显示设置

    visual studio 项目在编译时,可根据调试需要设置output窗口输出内容的详细程度,这对于bug或warning的解决具有很大帮助.具体设置如下: 依次点击:"Tools&quo ...

  9. Visual Studio编译与调用DLL方法

    参考自博客:http://www.cnblogs.com/houkai/archive/2013/06/05/3119513.html 用visual studio 2013新建win32 appli ...

随机推荐

  1. 使用Dom4j、反射自定义实现xml与java对象互转

    一.前言 国庆假期临近,工作动力不强.所以写几篇之前项目中自己用到的一些可能有用的东西分享出来. 今天分享的是Xml与javaBean互转的自定义实现. 先说几种我知道的Xml与javaBean互转的 ...

  2. shiro的使用与JWT整合

    一.shiro入门 两大框架对比:安全框架Shiro和SpringSecurity的比较 了解shiro 什么是Shiro Apache Shiro是一个Java的安全(权限)框架.| Shiro可以 ...

  3. react-native移动端设置android闪屏页

    前言 因为app启动时会白屏一段时间,导致让人用起来非常的不舒服,后来了解一下知道这叫做闪屏 于是着手解决这个白屏的问题,换个颜色?不行,不如用一张好看的图片来替换,这样才让人看起来更加舒服. 那么该 ...

  4. 10.3 Nginx

    Nginx介绍 engine X,2002年开发,分为社区版和商业版(nginx plus) 2019年 f5 Networks 6.7亿美元收购nginx Nginx 免费 开源 高性能 http ...

  5. Idea生成JavaDoc文档

    什么是JavaDoc javadoc是Sun公司提供的一个技术 它从程序源代码中抽取类.方法.成员等注释形成一个和源代码配套的API帮助文档 实现方式 命令行方式 javadoc -encoding ...

  6. 从源码解析Electron的安装为什么这么慢

    前言 Electron作为一款跨平台的桌面应用端解决方案已经风靡全球.作为开发者,我们几乎不用关心与操作系统的交互,直接通过Web前端技术与Electron提供的API就可以完成桌面应用端的开发. 然 ...

  7. caffe.cpp解析

    来自链接:http://blog.csdn.net/u014114990/article/details/47747025 主要讲解:GetBrewFunction()函数定义如下,其返回BrewFu ...

  8. dev分支和release是什么

    master(主分支) 存在一条主分支(master).所有用户可见的正式版本,都从master发布(也是用于部署生产环境的分支,确保master分支稳定性).主分支作为稳定的唯一代码库,不做任何开发 ...

  9. Geocoding Tools(地理编码工具)

    地理编码工具 # Process: 创建地址定位器 arcpy.CreateAddressLocator_geocoding("", "", "&qu ...

  10. Java领域的表现层的三种技术--jsp、freemarker、velocity

    10月份忙碌的参加秋招并获得了5个成都.上海.广州等不同地区的工作offer,最终选择了广州,11月底来到公司实习,很快,就跟进了公司的项目了,原本以为可以和宣讲会时报的志愿一样--Java开发,但是 ...