zoukankan      html  css  js  c++  java
  • 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别名可以大大缩短引入文件的时间。

  • 相关阅读:
    1.1 HTML5简介
    MATLAB基础知识——1.1MATLAB系统变量
    初识MATLAB
    Z-Stack
    [C语言]关于struct和typedef struct
    [Zigbee]定时器1
    常用数论算法
    SPFA&邻接表 PASCAL
    kruskal算法-Pascal
    懒惰的JY--关于遍历
  • 原文地址:https://www.cnblogs.com/karthuslorin/p/9195570.html
Copyright © 2011-2022 走看看