VueCli3中别名的使用以及一些问题的解决方式

VueCli3中别名的使用以及一些问题的解决方式

平时使用脚手架写项目时,有时项目目录结构太复杂,在引用一些组件或图片时,会变得很复杂,如图:
在这里插入图片描述由图可见,要想在当前编辑的文件中使用另外文件中存储的图片,如果用相对路径的话,会用到许多…/…/,并且后期如果将项目目录结构变换的话,也会造成许多不便。

解决方式:
在项目中,新建 一个vue.config.js的文件。(注意:此文件是和src同级的!否则会报错找不到路径)
在vue.config.js中的代码:

module.exports = {
  configureWebpack: {
    resolve: {
      alias: {
        'assets': '@/assets',
        'common': '@/common',
        'components': '@/components',
        'network': '@/network',
        'views': '@/views',
      }
    }
  }
}

因为在Vuecli3中默认@为src,所以不必再定义@,只需对别的文件进行别名定义。alias中冒号左边是别名,冒号右边是对应源路径。

定义好别名之后,还需注意:
在js、css中引用和在dom中引用别名时用法还有所区别。
在js和css中,直接使用别名即可,但在dom中需要加~(shift+`)。

这里举个例子。
文件目录如下:
在这里插入图片描述
在App.vue中想导入MainTabbar组件时:

使用别名前的写法:

import MainTabbar from './components/content/mainTabbar/MainTabbar'

使用别名后的写法:

import MainTabbar from 'components/content/mainTabbar/MainTabbar'

在App.vue中想导入base.css时:

使用别名前的写法:

 @import "./assets/css/base.css";

使用别名后的写法:

  @import "assets/css/base.css";

在MainTabbar 的dom中引入图片

使用别名前的写法:

<Tabbaritem path="/home" activeColor="blue">
      <img slot="item-icon" src="../../../assets/img/tabbar/home.svg"></img>
      <img slot="item-icon-active" src="../../../assets/img/tabbar/home_active.svg"></img>
      <div slot="item-text">首页</div>
</Tabbaritem>

使用别名后的写法:

 <Tabbaritem path="/home" activeColor="blue">
      <img slot="item-icon" src="~assets/img/tabbar/home.svg"></img>
      <img slot="item-icon-active" src="~assets/img/tabbar/home_active.svg"></img>
      <div slot="item-text">首页</div>
</Tabbaritem>

最后,说一下我遇到的坑。
有时配置完之后并且路径也没错时,npm run serve后还是显示依赖路径找不到。
此时,重启编辑器或者终端试一下,尤其是改了vue.config.js文件后。

如果还没有成功,试一试在项目中重新输入一下提示报错的路径。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值