后台大哥请进一步:使用Visual Studio编译scss和souce map实现前后端的完美结合
title: 后台大哥请进一步:使用Visual Studio编译scss和souce map实现前后端的完美结合
date: 2020-06-28
sidebarDepth: 2
tags:
- windows
- Visual studio
- scss
- css
categories: - 开发
- 微软技术
- windows
CSS设计是一种禅道,既是项目质量的体现,也是团队协同标尺,更是项目精益化的卓越体验,而微软的Visual studio工具完美支持现代软件研发,其单元测试、回归测试、云端发布、现代编译思维,无不敏捷的表现在细节之中,关键在于我们如何取用。
- 何为scss
- 什么是Source map
- 引入scss和统一全局css的必要性
- 比上不足,比下自我踌躇
- 开始Visual Studio的scss和souce map开发之旅
- 进一步优化scss及自动发布
- 技术多学点:Visual Studio插件所在目录
作为一名全栈开发者,十余年专注web前端研发,逐浪CMS发哥渴望上进,并认为:
- 技术适当向前一步、储备足够的新技术,
- 实施则适当退后、确保足够的兼容并蓄
这是软件实施与研发的“天人合一”。
然而,作为一名开发者,仅仅只专注于本身技术,而不能对全栈生态有着良好的把握,在现代软件开发或者工程实施中,这也许远远不够。
何为scss
简单的说,scss
就是一种css
的预编译技术,它可以实现css参数引用以及快速写作。
与之相近的技术,还有less
、stylus
等。
目前scss
是业界最流行的css
预编译标准,包括在bootstrap诸多项目中,都提供了面向scss
的支持。
如同我们所知识的,scss
默认是不能直接使用的,需要预编译,比如使用ruby
等技术进行编译,相关知识可以访问
- 1.安装ruby与sass环境 http://code.z01.com/doc/vscode.html
- 2.sass与scss中文手册 http://code.z01.com/Sass/
什么是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的研发和项目开发中,我们始终恪求交付用的包括完整的.map
和scss
,这样的好处是,客户可以快速的进行二次开发,并由此溯源--即使大多客户并不认识现代化的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实现前后端的完美结合的更多相关文章
- Visual Studio 编译项目失败,提示找不到文件
博客地址:http://blog.csdn.net/FoxDave 今天碰到了一个蠢问题,虽然咱们正常情况下是遇不到的,但这确实是个应该注意的地方,所以简单记录一下. Visual Studio ...
- Windows 使用 Visual Studio 编译 caffe
说明:最近看 caffe 发现在 github 上下载的源码没有windows版本的,需要自己生成项目文件才能用 Visual Studio 编译,这里记录一下生成Windows项目文件的方法以及编译 ...
- Visual Studio 编译后去掉只读属性
Visual Studio 编译后去掉只读属性 attrib $(TargetPath) -R attrib $(TargetDir)$(TargetName).pdb -R
- 打开VS2015提示“重新启动处于挂起状态。请在启动Visual Studio”之前重新启动
昨晚安装了VS2015,今天打开VS2015提示[“重新启动处于挂起状态.请在启动Visual Studio”之前重新启动] 这里重新启动指的是重启电脑 解决方法: 电脑需要重启电脑
- Visual Studio 编译Winform程序不生成.vshost.exe和.pdb文件的方法
问题:使用Visual Studio编译工程时,默认设置下,即使选择了「Release」时也会生成扩展名为「.vshost.exe」和「.pdb」的文件. 先解释一下各个文件的作用: .pdb文件: ...
- Visual Studio编译Core程序部署到linux
一.背景 随着微软拥抱开源,推出Net Core框架,目前已经支持跨平台,能部署到Linux.MacOS.Windows等系统上. 下面我们就来分享一下Visual Studio编译好的代码部署到Li ...
- Win8下Visual Studio编译报“无法注册程序集***dll- 拒绝访问。请确保您正在以管理员身份运行应用程序。对注册表项”***“的访问被拒绝。”问题修正(转)
原来在Win7下Visual Studio跑的好好的程序,现在在Win8下编译报“无法注册程序集***dll- 拒绝访问.请确保您正在以管理员身份运行应用程序.对注册表项”***“的访问被拒绝.”的错 ...
- Visual Studio 编译信息细度显示设置
visual studio 项目在编译时,可根据调试需要设置output窗口输出内容的详细程度,这对于bug或warning的解决具有很大帮助.具体设置如下: 依次点击:"Tools&quo ...
- Visual Studio编译与调用DLL方法
参考自博客:http://www.cnblogs.com/houkai/archive/2013/06/05/3119513.html 用visual studio 2013新建win32 appli ...
随机推荐
- 踩坑系列《七》解决VMware安装完成之后,不能联网的问题
成功安装CentOS 6.5 好之后,它是默认并不能联网,这时候得需要对root用户进行网络设置 1.先登录root账户 2.命令行输入以下命令,修改配置文件 vim /etc/sysconfig/n ...
- C++核心编程 3 函数提高
函数默认参数 在C++中,函数的形参列表中的形参是可以有默认值的: 语法:返回值类型 函数名 (参数 = 默认值){ } 实例: #include<iostream> using name ...
- Serverless 的价值
作者 | 许晓斌 阿里云高级技术专家 本文整理自<Serverless 技术公开课>,关注"Serverless"公众号,回复 入门 ,即可获取 Serverless ...
- DPARAM
中M_电子科技大学_计算机组成原理 双端口RAM Dual Port Access RAM 存储器不断接受CPU访问,还要频繁地和I/O设备通信.如果只有一套MAR,ID,MDR和读写电路.任一时刻只 ...
- 【UE4 C++】定时器 Timer 与事件绑定
概念 定时执行操作,可执行一次,或循环执行直到手动终止 定时器在全局定时器管理器(FTimerManager 类型)中管理.全局定时器管理器存在于 游戏实例 对象上以及每个 场景 中 定时器需要绑定委 ...
- 【数据结构与算法Python版学习笔记】递归(Recursion)——定义及应用:分形树、谢尔宾斯基三角、汉诺塔、迷宫
定义 递归是一种解决问题的方法,它把一个问题分解为越来越小的子问题,直到问题的规模小到可以被很简单直接解决. 通常为了达到分解问题的效果,递归过程中要引入一个调用自身的函数. 举例 数列求和 def ...
- BPMN 學習實例
什麼是業務流程圖? What is BPMN 業務流程建模符號(BPMN)是業務流程建模的一種方法.它基於統一建模語言(UML)中活動圖的概念,以圖形符號(業務流程圖)支持業務流程的規範.BPMN為企 ...
- 【二食堂】Beta - 事后分析
事后分析 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? Beta阶段我们首先要对文本标注方式进行优化,其次时添加好友系统,实现邀请好友共同标注的功能. ...
- [Beta]the Agiles Scrum Meeting 9
会议时间:2020.5.24 21:00 1.每个人的工作 今天已完成的工作 成员 已完成的工作 issue yjy 撰写技术博客 tq 实现评测机获取评测状态功能 评测部分增加更多评测指标 wjx ...
- [技术博客] Django中文件的保存与访问
[技术博客] Django中文件的保存与访问 在TextMarking项目开发中,数据库需要保存用户上传的文本文档. 原型设计:用户点击上传文本->保存文本->文本发送到后端保存为文件. ...