Vue 配置全局样式(style-resources-loader)

简介: Vue 配置全局样式(style-resources-loader)

一、简介

  • 在样式引入时,对于变量的引入,需要在每个文件里都要引入一遍,为了避免每次使用时都需要单独引入一遍的问题,采用了 style-resources-loader
  • 在确保安装指定 CSS 解析器 插件(less、less-loader | stylus、stylus-loader …)后。
  • 这里以 less 举例,新建一个 reset.less (文件名随意),路径为 @/assets/reset.less

  • 单页面导入示例:
<style lang="less" scoped>
// 这里的路径不能使用 @ 符号,否则会报错
// @import "@/assets/reset.less";
@import "../assets/reset.less";
.content {
  color: @dzm-color;
}
</style>
  • 单纯的在 main.js 文件中引入是无法实现全局样式的 import '@/assets/reset.less',这种方式是错误的。
  • 下面两种配置方式都不需要在 main.js 文件中引入 import '@/assets/reset.less',配置好之后直接使用即可。

二、配置方式一

  • 安装 style-resources-loader
$ npm i style-resources-loader
  • 安装 vue-cli-plugin-style-resources-loader
$ npm i vue-cli-plugin-style-resources-loader
const path = require('path');
module.exports = {
  // 安装 style-resources-loader 与 vue-cli-plugin-style-resources-loader
  pluginOptions: {
    'style-resources-loader': {
      preProcessor: 'less',
      // 这三种 patterns 写法都是可以的
      // patterns: ["./src/assets/reset1.less", "./src/assets/reset2.less"]
      // patterns: "./src/assets/reset.less"
      patterns: [
        // 两种路径写法都可以,这里的路径不能使用 @ 符号,否则会报错
        // path.resolve(__dirname, './src/assets/reset.less')
        path.resolve(__dirname, 'src/assets/reset.less')
      ]
    }
  }
};

三、配置方式二

  • 安装 style-resources-loader
$ npm i style-resources-loader
module.exports = {
  // 安装:style-resources-loader
  chainWebpack: (config) => {
    const oneOfsMap = config.module.rule("less").oneOfs.store;
    oneOfsMap.forEach(item => {
      item
        .use("style-resources-loader")
        .loader("style-resources-loader")
        .options({
          // 这里的路径不能使用 @ 符号,否则会报错
          // patterns: ["./src/assets/reset1.less", "./src/assets/reset2.less"]
          patterns: "./src/assets/reset.less"
        })
        .end()
    })
  }
};

四、上面两种方式选一种

  • 配置好之后,重新运行项目进行测试
<template>
  <!-- 内容 -->
  <div class="content">DZM - Test</div>
</template>
<script>
export default {
}
</script>
<style lang="less" scoped>
// 使用样式,这里将不需要单个页面导入了,直接使用即可
.content {
  margin-top: 50px;
  color: @dzm-color;
}
</style>

相关文章
|
4天前
|
JavaScript
vue使用iconfont图标
vue使用iconfont图标
41 1
|
15天前
|
JavaScript 关系型数据库 MySQL
基于VUE的校园二手交易平台系统设计与实现毕业设计论文模板
基于Vue的校园二手交易平台是一款专为校园用户设计的在线交易系统,提供简洁高效、安全可靠的二手商品买卖环境。平台利用Vue框架的响应式数据绑定和组件化特性,实现用户友好的界面,方便商品浏览、发布与管理。该系统采用Node.js、MySQL及B/S架构,确保稳定性和多功能模块设计,涵盖管理员和用户功能模块,促进物品循环使用,降低开销,提升环保意识,助力绿色校园文化建设。
|
2月前
|
JavaScript API 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
2月前
|
JavaScript 前端开发 开发者
Vue是如何劫持响应式对象的
Vue是如何劫持响应式对象的
33 1
|
2月前
|
JavaScript 前端开发 API
介绍一下Vue中的响应式原理
介绍一下Vue中的响应式原理
35 1
|
2月前
|
JavaScript 前端开发 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
2月前
|
存储 JavaScript 前端开发
介绍一下Vue的核心功能
介绍一下Vue的核心功能
|
JavaScript 测试技术 容器
Vue2+VueRouter2+webpack 构建项目
1). 安装Node环境和npm包管理工具 检测版本 node -v npm -v 图1.png 2). 安装vue-cli(vue脚手架) npm install -g vue-cli --registry=https://registry.
1066 0
|
2月前
|
JavaScript 前端开发 开发者
vue学习第一章
欢迎来到我的博客!我是瑞雨溪,一名热爱前端的大一学生,专注于JavaScript与Vue,正向全栈进发。博客分享Vue学习心得、命令式与声明式编程对比、列表展示及计数器案例等。关注我,持续更新中!🎉🎉🎉
46 1
vue学习第一章
|
2月前
|
JavaScript 前端开发 索引
vue学习第三章
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中的v-bind指令,包括基本使用、动态绑定class及style等,希望能为你的前端学习之路提供帮助。持续关注,更多精彩内容即将呈现!🎉🎉🎉
32 1

热门文章

最新文章