vue项目配置sass及引入外部scss文件


Posted in Vue.js onApril 14, 2022

配置sass及引入外部scss文件

配置sass

安装对应依赖node模块

npm install node-sass --save-dev
npm install sass-loader --save-dev

引入外部scss文件

在main.js中引入需要的scss文件

vue项目配置sass及引入外部scss文件

如果显示错误为如下图所示

vue项目配置sass及引入外部scss文件

打开webpack.base.config.js,删除掉注释部分的代码。因为vue-cli 项目里面配置了编译scss的,只要你装node-sass 和sass-loader,不需要自己添加配置。

记住此时需要重启项目 npm run dev

vue项目配置sass及引入外部scss文件

踩过的坑 Vue引入Sass文件

问题:在使用vue cli 3.0开发自己网页的过程中,想把CSS样式单独抽离出来,因为Sass的嵌套写法显得层次十分清晰,所以我个人是十分喜欢的。

但是在CSS样式单独抽离形成文件之后再引入,发现只有第一层样式作用上了。

问题来了,为什么呢?

CSS
.section{
	/*  只有这层作用上了 */
	width: 500px;
	height: 500px;
	background-color: #409EFF;
	
	.header{ 
		width: 500px;
		height: 100px;
		background-color:#67C23A
	}
	
	.main{
		width: 500px;
		height: 300px;
		background-color:#E6A23C;
	}
	
	.footer{
		width: 500px;
		height: 100px;
		background-color:#F56C6C;
	} 
}

首先我尝试了在vue文件中直接写Sass样式,结果是可以作用上的,但是为什么单独抽离出来没作用?

然后再把命令运行一次

npm install --save-dev node-sass sass-loader style-loader

vue cli 3.0 之后就没有config.js、build等文件或文件夹,所以不用配置,直接使用就可以了。

命令运行完之后还是不行。

于是开始百度,隐隐约约感觉到问题出现在引入的时候,而不是解析的时候。

百度 @import url("./xxx.sass") 和 @import “./xxx.sass” 的区别

得到官方答案

Sass支持原生的CSS@import,sass会尝试找到对应的sass文件并导入进来,但在下列三种情况下会生成原生的CSS@import:

  • 被导入文件的名字以.css结尾
  • 被导入文件的名字是一个URL地址(比如http://www.sass.hk/css/css.css),由此可用谷歌字体API提供的相应服务;
  • 被导入文件的名字是CSS的url()值。

这就是说,你不能用sass的@import直接导入一个原始的css文件,因为sass会认为你想用css原生的@import。但是,因为sass的语法完全兼容css,所以你可以把原始的css文件改名为.scss后缀,即可直接导入了。

所以造成一开始Sass文档解析不正确。

Vue.js 相关文章推荐
Vue使用Element实现增删改查+打包的步骤
Nov 25 Vue.js
Vue用mixin合并重复代码的实现
Nov 27 Vue.js
浅谈Vue使用Elementui修改默认的最快方法
Dec 05 Vue.js
vue3使用vue-count-to组件的实现
Dec 25 Vue.js
vue+element UI实现树形表格
Dec 29 Vue.js
vue集成一个支持图片缩放拖拽的富文本编辑器
Jan 29 Vue.js
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
Mar 01 Vue.js
Vue3 Composition API的使用简介
Mar 29 Vue.js
Vue项目中如何封装axios(统一管理http请求)
May 02 Vue.js
vue实现无缝轮播效果(跑马灯)
May 14 Vue.js
详解Vue的列表渲染
Nov 20 Vue.js
Vue3如何理解ref toRef和toRefs的区别
Feb 18 Vue.js
解决vue-router的beforeRouteUpdate不能触发
Apr 14 #Vue.js
vue3语法糖内的defineProps及defineEmits
Apr 14 #Vue.js
vue使用localStorage持久性存储实现评论列表
Apr 14 #Vue.js
vue项目proxyTable配置和部署服务器
Apr 14 #Vue.js
vue组件冲突之引用另一个组件出现组件不显示的问题
Apr 13 #Vue.js
vue elementUI表格控制对应列
Apr 13 #Vue.js
vue项目打包后路由错误的解决方法
Apr 13 #Vue.js
You might like
PHP 高手之路(三)
2006/10/09 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
2016/02/26 PHP
php变量与JS变量实现不通过跳转直接交互的方法
2017/08/25 PHP
PHP实现Huffman编码/解码的示例代码
2018/04/20 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
PHP中md5()函数的用法讲解
2019/03/30 PHP
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
js实现省市联动效果的简单实例
2014/02/10 Javascript
Js使用WScript.Shell对象执行.bat文件和cmd命令
2014/12/18 Javascript
JS获取月份最后天数、最大天数与某日周数的方法
2015/12/08 Javascript
javascript实现简单加载随机色方块
2015/12/25 Javascript
理解javascript对象继承
2016/04/17 Javascript
JS/jQ实现免费获取手机验证码倒计时效果
2016/06/13 Javascript
webpack+vue.js实现组件化详解
2016/10/12 Javascript
javascript内存分配原理实例分析
2017/04/10 Javascript
利用node.js+mongodb如何搭建一个简单登录注册的功能详解
2017/07/30 Javascript
基于nodejs res.end和res.send的区别
2018/05/14 NodeJs
webuploader实现上传图片到服务器功能
2018/08/16 Javascript
Layui弹出层 加载 做编辑页面的方法
2019/09/16 Javascript
判断JavaScript中的两个变量是否相等的操作符
2019/12/21 Javascript
如何通过Proxy实现JSBridge模块化封装
2020/10/22 Javascript
详解Python的Django框架中的templates设置
2015/05/11 Python
Python中利用sqrt()方法进行平方根计算的教程
2015/05/15 Python
python3安装pip3(install pip3 for python 3.x)
2018/04/03 Python
python数据库编程 Mysql实现通讯录
2020/03/27 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
2020/05/22 Python
Gap工厂店:Gap Factory
2017/11/02 全球购物
新加坡领先的在线生活方式和杂货购物网站:EAMART
2019/04/02 全球购物
营业员演讲稿
2013/12/30 职场文书
预备党员综合考察材料
2014/05/31 职场文书
机关作风整顿个人剖析材料
2014/10/06 职场文书
2014年个人工作总结模板
2014/12/15 职场文书
详解MySQL 联合查询优化机制
2021/05/10 MySQL
OpenCV-Python实现轮廓拟合
2021/06/08 Python
分位数回归模型quantile regeression应用详解及示例教程
2021/11/02 Python
HTML5基础学习之文本标签控制
2022/03/25 HTML / CSS