Webpack 中 CSS 路径别名 ~@ 和 @ 的区别是什么?

webpack 中 css 路径别名 ~@ 和 @ 的区别是什么?

Webpack 中 CSS 路径别名:理解 ~@ 和 @ 的差异

在使用 Webpack 构建项目时,特别是处理 CSS 中的背景图片路径,你可能会遇到 ~@ 和 @ 两种路径别名方式:

例如:

background-image: url(~@/assets/imgs/decorate.png);

Webpack 配置中通常会定义 @ 别名:

立即学习“前端免费学习笔记(深入)”;

resolve: {    extensions: ['.ts', '.tsx', '.js', '.jsx'],    alias: {        '@': path.resolve(__dirname, '../src'),    },},

为什么会有两种写法?

这两种写法并非 CSS 标准,而是由 css-loader 造成的差异。css-loader 使用 ~ 符号作为路径别名的前缀,而 @ 符号则被视为路径的一部分。

路径别名的优势

网易人工智能 网易人工智能

网易数帆多媒体智能生产力平台

网易人工智能 206 查看详情 网易人工智能

使用路径别名可以显著提升 Webpack 的构建速度。它将冗长的文件路径映射为简短的别名,减少了构建过程中的字符串匹配次数。

css-loader 使用 ~ 的原因

css-loader 使用 ~ 符号是为了避免与实际文件路径冲突。如果直接使用 @,可能会与项目中已存在的目录名发生冲突,导致路径解析错误。

~ 符号的额外作用

css-loader 的 ~ 符号还允许从 node_modules 目录导入模块,这是 @ 符号无法实现的功能。 JavaScript 模块加载器通常不需要处理这种情况,因此可以使用 @ 而不会产生歧义。

总而言之,~@ 是 css-loader 特有的路径别名语法,用于区分项目内部路径和 node_modules 中的模块,而 @ 则是在 Webpack 配置中定义的更通用的路径别名。 理解这种差异有助于更好地编写和维护 Webpack 项目。

以上就是Webpack 中 CSS 路径别名 ~@ 和 @ 的区别是什么?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1145946.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
《世界启元》S4怒海狂涛来袭!天空海洋皆为战场!
上一篇 2025年12月2日 18:57:45
Golang函数中如何安全修改指针指向的数据
下一篇 2025年12月2日 18:57:47

相关推荐

发表回复

登录后才能评论
关注微信