Vue中使用webpack别名的方法

Posted 格子熊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue中使用webpack别名的方法相关的知识,希望对你有一定的参考价值。

在工作中,我们经常会写出这种代码:

import MHeader from ‘../../components/m-header/m-header‘
@import "../../common/stylus/variable"
@import "../../common/stylus/mixin"

即,需要引入公共文件,但是公共文件的文件路径里当前文件很远,那么就会形成上面示例中的那种路径很长的情况。

而因为文件目录是约定俗成的,不可轻易更改,无法修改相对路径。那么该怎么办呢?

大家都知道,Vue中的js可以通过配置webpack别名(alias)来避免一长串的路径引用,即:

// target
import MHeader from ‘components/m-header/m-header‘

//webpack.base.conf.js
alias: {
    ‘@‘: resolve(‘src‘),
    ‘common‘: resolve(‘src/common‘),
    ‘components‘: resolve(‘src/components‘)
}

但是,如果直接把这种方法用在css中,则会报错:

@import "common/stylus/variable"    // error
@import "common/stylus/mixin"       // error

其实,这种方法没有错,只不过webpack对css的处理不同于js。

在js中,webpack对路径进行处理时,自动将没有路径标识(/ ,./,../)的第一个文件夹名当做webpack别名处理。如,第一个文件夹名为components,那么webpack会自动在alias中搜索有没有对应的别名,如果有,则直接替换路径;没有则报错。

在css中,webpack正常情况下,不会对路径进行处理。如果你想让webpack对路径进行处理,那么,可以在路径前标识~,如下:

@import "~common/stylus/variable"
@import "~common/stylus/mixin"

相当于通过添加~表示common是webpack别名而不是表示一个文件夹名。

正确使用webapck别名可以大大缩短引入文件的时间。

以上是关于Vue中使用webpack别名的方法的主要内容,如果未能解决你的问题,请参考以下文章

Vue项目中使用webpack配置了别名,引入的时候报错

vue3,配置工作路径别名方法

带有 webpack 别名的 Vue-typescript 错误,找不到路径

vsCode中编写vue项目时,webpack配置的alias别名无效

vue2.x 中scss 使用webpack 别名路径引入图片资源

解决IdeaWebStorm下使用Vue cli脚手架项目无法使用Webpack别名的问题