webpack 使用别名(resolve.alias)解决scss @import相对路径导致的问题
webpack.conf.js 中 resolve.alias 配置
resolve: { extensions: [‘.js‘, ‘.vue‘], alias: { ‘@‘: path.resolve(__dirname, ‘src‘), ‘@scss‘: path.resolve(__dirname, ‘src‘, ‘scss‘), } }
配置了resolve.alias 后,在js中我们可以这样用
// 原本这样写 import hongAlert from ‘./../src/scss/icon.scss‘ // 现在可以这样写 import hongAlert from ‘@scss/icon.scss‘
在scss中需要这样写,注意是
// 原本这样写 @import ‘./../../../scss/mixin.scss‘; // 现在可以这样写,注意是 @import ‘/icon.scss‘;
问题与背景
在 *.vue 中的 style 标签中,我使用 @import 引入 icon.scss 样式。由于icon需要依赖一个font/woff/ttf。而 icon.scss 和 font 文件夹是同一目录的。
而Alert.vue却和它们不同目录。那这时候编译会发生什么呢?报错~
原因和流程可能是这样的:vue将icon.scss引入后,再想引入font的时候,却发现在vue的目录中找不到font这个文件夹,所以报错了。
解决方法,是结合webpack的resolve.alias来配置绝对路径。
顺便一提,如果你在js中引用scss,就不会导致这种错误。但在js中导入css总觉得怪怪的。
import ‘@scss/icon.scss‘
相关推荐
Bonrui编程路 2020-07-18
深井兮兮 2020-07-18
Alisa0 2020-06-14
DBATips 2020-06-07
atb 2020-04-18
小惠 2020-03-03
sunln00 2020-02-20
林大夏 2020-02-16
aihenaichadeyun 2019-12-20
csdnyasin 2019-12-21
福叔 2019-12-09
gaozhlzh 2013-09-11
心动 2019-11-17
lyccsu 2015-05-15
lhxxhl 2019-06-10
snowknow 2019-07-01
lovexiaoqiqi 2019-05-20
Dongxiem 2015-09-08
89550492 2011-06-06