webpack打包后css路径(Webpack 中 css import 使用 alias 相对路径的方法)
webpack打包后css路径
Webpack 中 css import 使用 alias 相对路径的方法在用 Webpack 处理打包时,可将某一目录配置一个别名,代码中就能使用与别名的相对路径引用资源。
在 Vue 项目中,我们通常使用 vue-webpack 脚手架生成工程模板,然后配置 @ 为项目根目录下放资源和源码的 /src 目录的别名;
..., resolve: { ..., alias: { '@': resolve('src') } }
这样我们就可以在 js 文件中用形如 import tool from '@/utils/xxx'
的方式引用 /src/utils/xxx.js
文件,并且 Webpack 能正确识别并打包。
但是在 css 文件,如 less, sass, stylus 中,使用 @import "@/style/theme"
的语法引用相对 @ 的目录确会报错,"找不到 '@' 目录",说明 webpack 没有正确识别资源相对路径。
分析
原因是 css 文件会被用 css-loader 处理,这里 css @import 后的字符串会被 css-loader 视为绝对路径解析,因为我们并没有添加 css-loader 的 alias ,所以会报找不到 @ 目录。
解决
在 Webpack 中 css import 使用 alias 相对路径的解决办法有两种;
一是直接为 css-loader 添加 ailas 的路径,但是在 vue-webpack 给的模板中,单独针对这个插件添加配置就显得麻烦冗余了;
二是在引用路径的字符串最前面添加上 ~ 符号,如 @import "~@/style/theme" ;Webpack 会将以 ~ 符号作为前缀的路径视作依赖模块而去解析,这样 @ 的 alias 配置就能生效了。
总结
~ 视为模块解析是 webpack 做的事,不是 css-loader 做的事。
各类非 js 直接引用( import require )静态资源,依赖相对路径加载问题,都可以用 ~ 语法完美解决;
例如 css module 中: @import "~@/style/theme"
css 属性中: background: url("~@/assets/xxx.jpg")
html 标签中: <img src="~@/assets/xxx.jpg" alt="alias">
参考资料
vue-webpack 资源路径的处理
Using url(path) with resolve.alias
CSS Loader Usage Url
总结
以上所述是小编给大家介绍的Webpack 中 css import 使用 alias 相对路径的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
- css中设置flex布局浮动是否会生效(深入理解CSS系列之flex兼容)
- css媒体查询常见的媒体类型(css基于媒体查询和 rem 的响应式布局实践)
- css3中的过渡属性的几种方法(基于CSS3实现的几个小loading效果)
- css3弹性盒模型常用属性(CSS3弹性盒模型开发笔记三)
- css3怎么改成3d(灵活运用CSS3特性绘制简易版围棋效果)
- css3边框讲解(六种css3实现的边框过渡效果)
- css43个基本技巧(必须掌握10个非常不错的CSS技巧)
- css怎么给背景颜色设置模糊(CSS设置背景图片模糊内容不模糊的解决方法)
- css的4个基础选择器(详解css常用选择器)
- css3 box-sizing
- html导航条下拉菜单代码(Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码)
- html5表单元素自带验证功能(纯CSS3实现表单验证效果非常不错)
- css怎样设置文字不换行(css是如何实现在页面文字不换行、自动换行、强制换行的方法)
- css浮动小例子教程(使用css transition属性实现一个带动画显隐的微信小程序部件)
- cssborder三角形怎么画(使用CSS的border属性绘制各种几何形状的方法)
- css瀑布流布局
- 东南亚安全吗(好不好挣钱)
- 潘长江小品《照亮全家福》台词剧本完整版(潘长江小品照亮全家福台词剧本完整版)
- 一窗通办政务服务小品剧本(一窗通办政务服务小品剧本)
- 刘韬涛丁子贺小品《根治低头族》台词剧本(刘韬涛丁子贺小品根治低头族台词剧本)
- 看完《夺冠》,黄渤的演技我实在夸不起来,彭昱畅反令人惊喜(黄渤的演技我实在夸不起来)
- 黄渤泪目 我的痴呆父亲,我内心永远的痛(黄渤泪目我的痴呆父亲)
热门推荐
- sqlserverselect选择两个参数(SQL SERVER中SELECT和SET赋值相同点与不同点推荐)
- php实现redis消息队列(redis+php实现微博三微博列表功能详解)
- mysqllinux解压版安装教程学习(解决Linux安装mysql 在/etc下没有my.cnf的问题)
- linux磁盘分区创建步骤(Linux parted磁盘分区实现步骤解析)
- dedecms修改教程(还原dedecms数据后系统基本参数空白的解决方法)
- idea向数据库中插入中文报错(Idea连接MySQL数据库出现中文乱码的问题)
- opencv自带的人脸识别(Dlib+OpenCV深度学习人脸识别的方法示例)
- jquery实现标签输入功能
- pyqt第三方控件(PySide和PyQt加载ui文件的两种方法)
- vue指令使用技巧(Vue指令工作原理实现方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9