Vue3自定义基本资源目录及全局引用sass文件

16366次阅读 1341人点赞 作者: WuBin 发布时间: 2021-06-09 14:24:12
扫码到手机查看

src目录构建

上一讲:Vue-cli脚手架生成的代码介绍

现在我们需要根据项目实际情况,修改项目目录结构。修改后的项目目录如下:

其中:assets主要存放各种静态资源:

  • fonts:存放字体文件,使用svg生成字体文件。推荐icon-moon
  • images: 存放公用的静态图片。对于图片的使用,推荐就近原则,将组件用到的图片与组件文件放在一个文件夹内。如header组件。
  • scss: 存放sass函数文件、变量值文件、重置样式文件等。

sass文件的全局引用

首先来看下scss/index.scss:
@import "reset";
@import "icon";
@import "base";

这个文件主要作用是引入一些静态的样式文件。如果这里引用函数mixin.scss和variable.scss是不可以的。这两个文件通常都在组件中每次都引入。现在的话,如果是使用sass可以在vue.config.js中配置全局引入。

module.exports = {
  css: {
    loaderOptions: {
      sass: {
        // 全局引入变量和Mixin additionalData允许全局引入scss文件,
        // 全局引入后就可以直接用 无需每个组件都import了
        // 因为这是最新的特性,所以node-sass:^5.0与sass-loader:^10.1必须升级到最新版否则会报错
        additionalData: `
          @import "@/assets/scss/variable.scss";
          @import "@/assets/scss/mixin.scss";
        `
      }
    }
  }
}
因为这是最新的特性,所以node-sass:^5.0.0与sass-loader:^10.1.0是最低的版本要求,必须升级到,否则会报错导致无法使用。

注意:修改vue.config后要重启服务,重新执行npm run serve.

如此修改后,在任何组件,以及assets/scss/的文件中,无需引入variable.scss即可直接使用SASS变量,如:

// bass.scss 基础全局的CSS样式
body, html {
  background: $color-background;
  color: $color-text;
}

最后在main.js中引入scss下的index.scss:

// 引入全局样式文件,注意不能加双引号
import '@/assets/scss/index.scss'

(less等是否有这个新特性带后期验证后补充)

基本的组件引入

创建一个基本的组件header后,在app.vue中引入:

<template>
  <div id="nav">
    <m-header></m-header>
  </div>
  <router-view/>
</template>
<script>
import Header from '@/components/header/header'
export default {
  components: {
    MHeader: Header
  }
}
</script>
<style lang="scss"></style>
这里的 "@"  是配置的 webpack 的 alias,vue-cli 内部对 webpack 的封装做的。代表项目文件夹的根目录下的src文件夹(Vue3.0提供的语法,vue2还需要配置vue.config.js)。

eslint校验规则

eslint校验规则添加在.eslintrc.js中,添加如下:

//修改eslint的配置
rules: {
    'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
    //每行的缩进为0
    'indent': 0,
    // 函数名与{之间的空格 不去检查
    'space-before-function-paren': 0
}

如此便完成了一个项目基本的目录结构。

相关资料

点赞 支持一下 觉得不错?客官您就稍微鼓励一下吧!
关键词:vue项目目录结构
推荐阅读
  • uniapp实现被浏览器唤起的功能

    当用户打开h5链接时候,点击打开app若用户在已经安装过app的情况下直接打开app,若未安装过跳到应用市场下载安装这个功能在实现上主要分为两种场景,从普通浏览器唤醒以及从微信唤醒。

    9603次阅读 623人点赞 发布时间: 2022-12-14 16:34:53 立即查看
  • Vue

    盘点Vue2和Vue3的10种组件通信方式

    Vue中组件通信方式有很多,其中Vue2和Vue3实现起来也会有很多差异;本文将通过选项式API组合式API以及setup三种不同实现方式全面介绍Vue2和Vue3的组件通信方式。

    4297次阅读 317人点赞 发布时间: 2022-08-19 09:40:16 立即查看
  • JS

    几个高级前端常用的API

    推荐4个前端开发中常用的高端API,分别是MutationObserver、IntersectionObserver、getComputedstyle、getBoundingClientRect、requ...

    14452次阅读 948人点赞 发布时间: 2021-11-11 09:39:54 立即查看
  • PHP

    【正则】一些常用的正则表达式总结

    在日常开发中,正则表达式是非常有用的,正则表达式在每个语言中都是可以使用的,他就跟JSON一样,是通用的。了解一些常用的正则表达式,能大大提高你的工作效率。

    13497次阅读 491人点赞 发布时间: 2021-10-09 15:58:58 立即查看
  • 【中文】免费可商用字体下载与考证

    65款免费、可商用、无任何限制中文字体打包下载,这些字体都是经过长期验证,经得住市场考验的,让您规避被无良厂商起诉的风险。

    12015次阅读 963人点赞 发布时间: 2021-07-05 15:28:45 立即查看
  • Vue

    Vue3开发一个v-loading的自定义指令

    在vue3中实现一个自定义的指令,有助于我们简化开发,简化复用,通过一个指令的调用即可实现一些可高度复用的交互。

    16376次阅读 1307人点赞 发布时间: 2021-07-02 15:58:35 立即查看
  • JS

    关于手机上滚动穿透问题的解决

    当页面出现浮层的时候,滑动浮层的内容,正常情况下预期应该是浮层下边的内容不会滚动;然而事实并非如此。在PC上使用css即可解决,但是在手机端,情况就变的比较复杂,就需要禁止触摸事件才可以。

    15187次阅读 1234人点赞 发布时间: 2021-05-31 09:25:50 立即查看
  • Vue

    Vue+html2canvas截图空白的问题

    在使用vue做信网单页专题时,有海报生成的功能,这里推荐2个插件:一个是html2canvas,构造好DOM然后转canvas进行截图;另外使用vue-canvas-poster(这个截止到2021年3月...

    29853次阅读 2347人点赞 发布时间: 2021-03-02 09:04:51 立即查看
  • Vue

    vue-router4过度动画无效解决方案

    在初次使用vue3+vue-router4时候,先后遇到了过度动画transition进入和退出分别无效的情况,搜遍百度没没找到合适解决方法,包括vue-route4有一些API都进行了变化,以前的一些操...

    25911次阅读 1994人点赞 发布时间: 2021-02-23 13:37:20 立即查看
交流 收藏 目录