vue,一路走来(17)--vue使用scss,并且全局引入公共scss样式
最近朋友问如何在vue项目中使用scss样式,想起之前项目是直接在main.js直接import css
文件的,然而main.js不可以直接import scss
文件。
import './assets/css.css'
src/assets/scss.scss
$border-color:#c58f5d;
.box{
width:100px;
height: 100px;
border:1px solid #f40;
}
第一步:安装依赖
cnpm install node-sass --save-dev cnpm install sass-loader --save-dev cnpm install style-loader --save-dev
cnpm install sass-resources-loader --save-dev
第二步:配置build/utils.js
scss: generateLoaders('sass') 改成 scss: generateLoaders('sass').concat( { loader: 'sass-resources-loader', options: { resources: path.resolve(__dirname, '../src/assets/scss.scss') } } )
发现项目报错:Module build failed: TypeError: this.getResolve is not a function
sass-loader的版本过高导致的编译错误,当前最高版本是8.x,需要退回到7.3.1
运行:
npm uninstall sass-loader(卸载当前版本) npm install sass-loader@7.3.1 --save-dev
最后在vue组件中的style标签中添加lang="scss"
,就ok了。这样我们就实现了全局引入scss。
<style lang="scss"> .box2{width:100px;height:100px;border:1px solid $border-color;} </style>
在webpack.base.conf.js中的module.rules添加如下配置,可以实现引入其余的scss文件
{ test: /\.scss$/, loaders: ["style", "css", "sass"] },
<style lang="scss"> @import '../../assets/other.scss'; .box2{width:100px;height:100px;border:1px solid $border-color;} </style>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具