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中需要这样写,注意是[email protected]

// 原本这样写
@import ‘./../../../scss/mixin.scss‘;

// 现在可以这样写,注意是[email protected]
@import ‘[email protected]/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‘

原文地址:https://www.cnblogs.com/CyLee/p/8438824.html

时间: 2024-11-08 20:53:30

webpack 使用别名(resolve.alias)解决scss @import相对路径导致的问题的相关文章

webpack 之 resolve.alias(别名)

module.exports = { entry: './src/main.js', output: { path: path.resolve(__dirname, './dist'), publicPath: '/dist/', filename: 'build.js' }, module: { rules: [ ] }, resolve: { extensions: [".js", ".json"] //自动解决某些扩展 alias: { 'vue$': 'vu

Eclipse代码报错提示: the import java.util cannot be resolve,怎么解决?

显示 the import java.util cannot be resolve,如何解决?我在使用eclipse的时候, 好像无意中更改了安装位置(workspace),现在所有的包都显示无法导入:the import java cannot be resolved 请问如何解决这个问题? ------解决方案1--------------------解决方案:右键项目-------buildpath--------最下面那个configura...的选择libraries找到JRE(这个时

the import java.util.* cannot be resolve,怎么解决

我碰到这个问题是因为重装系统后,原先的JDK6换成了JDK7, Eclipse中的旧项目中jsp文件的此类import出现错误提示.在以下页面找到解决方案,专贴出来: http://www.myexception.cn/eclipse/17226.html 显示 the import Java.util cannot be resolve,如何解决?我在使用eclipse的时候, 好像无意中更改了安装位置(workspace),现在所有的包都显示无法导入:the import java cann

yum 安装时错误 Errno 14 Couldn't resolve host 解决办法

是由于DNS解析错误引起的 修改/etc/resolv.conf 添加一个nameserver 8.8.8.8完成 yum 安装时错误 Errno 14 Couldn't resolve host 解决办法

yum 安装时错误 Couldn't resolve host 解决办法

修改/etc/resolv.conf 添加:nameserver 8.8.8.8 yum 安装时错误 Couldn't resolve host 解决办法

通过使用 SQL,可以为列名称和表名称指定别名(Alias)

通过使用 SQL,可以为列名称和表名称指定别名(Alias). SQL Alias 表的 SQL Alias 语法 SELECT column_name(s) FROM table_name AS alias_name 列的 SQL Alias 语法 SELECT column_name AS alias_name FROM table_name Alias 实例: 使用表名称别名 假设我们有两个表分别是:"Persons" 和 "Product_Orders".我

webpack构建工具常见问题及解决方法

webpack构建工具常见问题及解决方法 在运用webpack开发项目的时候经常会遇到各种各样的问题,我对实际开发项目中实际遇到的一些问题 进行总结,希望能帮助到大家. ?? 1. 构建需要的包未添加依赖报错 Module not found:"xxx(例:react)" in "项目文件" ??这种情况是由于"xxx(例:react)"未添加依赖,解决办法如下: npm install xxx(react) --save 或 yarn add

vue超简单加载字体方法,解决scss难加载字体的问题

vue超简单加载字体方法,解决scss难加载字体的问题 scss在加载字体方面一直不太好用,需要繁杂的配置才能达到想要的效果,这里说一种非常简单的方法 在App.vue的style标签下引入字体文件后,scss设置的字体依旧可以正确识别,注意style的lang不要写,就使用原生css 示例引入 <style> @font-face{ font-family: pingfang; src: url('./style/pingfang.ttf') } </style> 然后想要的位置

解决ScrollView嵌套ViewPager,导致ViewPager不能滑动的问题

import java.lang.reflect.Field; import java.lang.reflect.Method; /** * 解决ScrollView嵌套ViewPager,导致ViewPager不能滑动的问题 */ public class CustomScrollView extends ScrollView { private GestureDetector mGestureDetector; private int Scroll_height = 0; private i