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. openEuler 20.03/21.03 - 华为欧拉开源版(CentOS 8 华为版开源版)下载

    开始 openEuler 之旅吧 openEuler 通过社区合作,打造创新平台,构建支持多处理架构.统一和开放的操作系统,推动软硬件应用生态繁荣发展. 好玩的活动停不下来 openEuler 社区不 ...

  2. T-SQL——数据透视和逆透视

    目录 0. 测试数据集及说明 0.1 准备测试数据 0.2 对一维表和二维表理解 1. 透视转换 1.1 使用标准SQL进行数据透视 1.2 使用T-SQL中pivot函数进行数据透视 1.3 关于 ...

  3. Win32窗口框架

    Win32窗口框架 WindowClass 单例,负责窗口初始化注册和取消注册: 负责提供静态方法: 放在Window类内部,方便初始化时,wndProc(HandleMsgSetup)的赋值: cl ...

  4. 人力节省 50%,研发效能提升 40%,阿里 Serverless 架构落地实践

    作者 | 万佳 嘉宾 | 杨皓然(不瞋) 导读:云的下一波浪潮是什么?杨皓然称"是 Serverless".作为一名阿里老兵,他早在 2010 年即加入阿里云,曾深度参与阿里云飞天 ...

  5. Serverless 解惑——函数计算如何安装字体

    前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute):函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传.函数计算准 ...

  6. 重磅 | 阿里开源首个 Serverless 开发者平台 Serverless Devs

    Serverless 从概念提出到应用,已经走过了 8 个年头,开发者对 Serverless 的使用热情不断高涨.为帮助开发者实现一键体验多云产品,极速部署 Serverless 项目,10 月 2 ...

  7. The Data Way Vol.1|风口下的开源市场:如何看待开源与商业的关系?

    关于「The Data Way」 「The Data Way」是由 SphereEx 公司出品的一档播客节目.这里有开源.数据.技术的故事,同时我们关注开发者的工作日常,也讨论开发者的生活日常:我们聚 ...

  8. 题解 [APIO2013]道路费用

    link Description 幸福国度可以用 N 个城镇(用 1 到 N 编号)构成的集合来描述,这些城镇 最开始由 M 条双向道路(用 1 到 M 编号)连接.城镇 1 是中央城镇.保证一个 人 ...

  9. Java(23)常用API二

    作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15228415.html 博客主页:https://www.cnblogs.com/testero ...

  10. k8s replicaset controller分析(2)-核心处理逻辑分析

    replicaset controller分析 replicaset controller简介 replicaset controller是kube-controller-manager组件中众多控制 ...