vue-cli + sass 的正确打开方式图文详解


Posted in Javascript onOctober 27, 2017

关于在vue-cli搭建的项目中怎么配置sass,网上搜到的基本是这种答案:

vue-cli + sass 的正确打开方式图文详解

但是我认为,直接将样式写在每个单文件的<style>里,是十分不明智的做法。且不说node-sass安装过程的各种坑,内嵌的<style>也让组件显得十分混乱。想象一下你在修改某个methods时必须拖动滚轮穿越几十上百行的css代码,又或者为了修改一组样式,却找不到对应的css文件,因为它们散布在vue文件里。。。

在我看来,正确的做法应该是单独管理sass文件,然后在main.js中直接引入编译好的css文件。像iView, ElementUI 都是采用这种做法。

如果你认同并且打算采用这种方式,看下面这个具体的例子:

vue-cli + sass 的正确打开方式图文详解

项目结构如上图,style文件夹下是分门别类的scss文件,方便管理和后期维护。然后在main.scss引入所有的scss样式片段,使用 sass --watch main.scss:main.css 命令监听并将scss文件编译为css文件。最后在main.js中引入main.css文件。这样你就可以直接在元素上添加class,然后在scss中畅快写样式了。

vue-cli + sass 的正确打开方式图文详解

当然我们不希望每次手动输入这些命令,初步想法是通过修改dev命令,:

vue-cli + sass 的正确打开方式图文详解

但是这样并不能达到效果,因为每次只会启动前一个命令。于是考虑到使用批处理来实现:

vue-cli + sass 的正确打开方式图文详解
vue-cli + sass 的正确打开方式图文详解

将这两个.bat放在根目录下,然后配置package.json:

vue-cli + sass 的正确打开方式图文详解

这样就可以使用 npm run dev 一键启动 hot reload 和 sass watch了。

总结

以上所述是小编给大家介绍的vue-cli + sass 的正确打开方式图文详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
对 lightbox JS 图片控件进行了一下改造, 使其他支持复杂的图片说明
Mar 20 Javascript
关于Jquery操作Cookie取值错误的解决方法
Aug 26 Javascript
JavaScript中判断函数、变量是否存在
Jun 10 Javascript
jQuery实现可关闭固定于底(顶)部的工具条菜单效果
Nov 06 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
Aug 10 Javascript
微信小程序使用第三方库Immutable.js实例详解
Sep 27 Javascript
在js里怎么实现Xcode里的callFuncN方法(详解)
Nov 05 Javascript
JavaScript中的编码和解码函数
Feb 15 Javascript
Bootstrap3 模态框使用实例
Feb 22 Javascript
JS实现的模仿QQ头像资料卡显示与隐藏效果
Apr 07 Javascript
使用JS模拟锚点跳转的实例
Feb 01 Javascript
微信小程序自定义toast的实现代码
Nov 16 Javascript
本地搭建微信小程序服务器的实现方法
Oct 27 #Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
Oct 27 #Javascript
浅析Javascript中双等号(==)隐性转换机制
Oct 27 #Javascript
微信小程序promsie.all和promise顺序执行
Oct 27 #Javascript
JS+CSS实现网页加载中的动画效果
Oct 27 #Javascript
vue-resource拦截器设置头信息的实例
Oct 27 #Javascript
Vue-resource拦截器判断token失效跳转的实例
Oct 27 #Javascript
You might like
php+ajax做仿百度搜索下拉自动提示框(有实例)
2012/08/21 PHP
php中使用PHPExcel读写excel(xls)文件的方法
2014/09/15 PHP
PHP中mysql_field_type()函数用法
2014/11/24 PHP
php中实现字符串翻转的方法
2017/02/22 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
使用户点击后退按钮使效三行代码
2007/07/07 Javascript
模仿百度三维地图的js数据分享
2011/05/12 Javascript
jQuery 源码分析笔记(3) Deferred机制
2011/06/19 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
JS如何实现文本框随文本的长度而增长
2015/07/30 Javascript
js实现继承的5种方式
2015/12/01 Javascript
Javascript小技能总结(推荐)
2016/06/02 Javascript
AngularJs  Understanding Angular Templates
2016/09/02 Javascript
Bootstrap模态框调用功能实现方法
2016/09/19 Javascript
详谈js中数组(array)和对象(object)的区别
2017/02/27 Javascript
JavaScript伪数组用法实例分析
2017/12/22 Javascript
vue 解决循环引用组件报错的问题
2018/09/06 Javascript
vue 本地环境跨域请求proxyTable的方法
2018/09/19 Javascript
JS实现的A*寻路算法详解
2018/12/14 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
2019/04/02 Javascript
TypeScript高级用法的知识点汇总
2019/12/17 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
[02:40]DOTA2英雄基础教程 巨牙海民
2013/12/23 DOTA
使用python编写批量卸载手机中安装的android应用脚本
2014/07/21 Python
详解python发送各类邮件的主要方法
2016/12/22 Python
老生常谈Python序列化和反序列化
2017/06/28 Python
通过实例解析python描述符原理作用
2020/01/22 Python
Python编程快速上手——选择性拷贝操作案例分析
2020/02/28 Python
使用python求斐波那契数列中第n个数的值示例代码
2020/07/26 Python
美国网上购买眼镜:Eyeconic
2017/07/29 全球购物
俄罗斯的精英皮具:Wittchen
2018/01/29 全球购物
乌克兰数字设备、配件和智能技术的连锁商店:KTC
2020/08/18 全球购物
Redis遍历所有key的两个命令(KEYS 和 SCAN)
2021/04/12 Redis
PostgreSQL出现死锁该如何解决
2022/05/30 PostgreSQL