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 相对路径的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
- DIV+CSS网页布局时常犯的几个错误
- css绝对布局和相对布局(如何理解 CSS 布局和块级格式上下文)
- css实现动画的方法(CSS实现悬停过渡动画三部曲)
- css行框高度与lineheight(CSS中height和min-height的区别)
- CSS中background-attachment
- css3动画怎么实现的(css3中用animation的steps属性制作帧动画)
- css3动画平移代码(利用CSS3实现炫酷的飞机起飞动画)
- css什么时候可以用百分比(浅谈CSS中的百分比)
- css如何去掉本身的浮动元素(CSS清除浮动的常用方法优缺点分析)
- css宫格布局(CSS实现页面九宫格布局的简单示范)
- css怎么样让banner不动(CSS banner图响应式居中显示的方法)
- css图片颜色提取(解析CSS 提取图片主题色功能小技巧)
- CSS命名规范
- 动画用css3还是js(前端制作动画的几种方式css3,js)
- css3边框和边界图片(css3 box-shadow阴影外阴影与外发光图示讲解)
- js里咋样设置css里面的属性(css不常见属性之pointer-events的使用方法)
- 乔欣 古装剧中的高颜值(古装剧中的高颜值)
- 怎么才可以财富自由(如何让自己实现财富自由)
- 为什么越来越多年轻人回农村(为什么越来越多年轻人回农村生活)
- 怎么快速学好英语(怎么快速学好英语初中)
- 中国留学生都是富二代吗()
- 我们现在吃的苹果是哪里来的 原来现代苹果引入中国仅有一百多年(我们现在吃的苹果是哪里来的)
热门推荐
- 普通人如何申请阿里云账号(怎么注册阿里云账号 阿里云帐号怎么申请)
- javascript页面滚动窗口(javascript实现简单滚动窗口)
- MySQL中interactive_timeout和wait_timeout
- Cookie常用属性
- poll?transport=longpoll&connection...连接的作用
- ubuntu安装hadoop单机版(VMware + Ubuntu18.04 搭建Hadoop集群环境的图文教程)
- sqlserver如何可视化表(sql server使用公用表表达式CTE通过递归方式编写通用函数自动生成连续数字和日)
- django框架全面讲解(Django uwsgi Nginx 的生产环境部署详解)
- 使用canvas画个正方形(canvas绘制树形结构可视图形的实现)
- dede软件标签(发掘dede自带的google sitemap功能)