css-loader中‘~’的作用

本文介绍了在webpack配置中使用css-loader时,如何通过'~'符号结合alias实现引用别名路径。当在CSS中插入背景图片,需要css-loader支持别名时,可以在路径前加上'~',以便正确解析node_modules或alias路径。
摘要由CSDN通过智能技术生成

当我们使用webpack打包应用程序的时候可以通过alias设置别名的方式避免类似于这种尴尬的局面require('../../path/to/foo')。 如果我们设置了别名@指向src

alias: {
    @: path.resolve(__dirname, 'path/to/src')
}
复制代码

我们就可以轻松引入src下的文件,假设我们有如下目录src>img>foo.png

就可以这样引入 require('@/img/foo.png'),或者import '@/img/foo.png'

这种写法在js文件中是有效的,但是如果我们的css中需要插入背景图片,这个时候如何写图片地址呢?

.foo{
    // 这种写法并不能成功解析,会构建出错
    background: url('@/assets/img/foo.png')
}
复制代码

通常我们的css是需要css-loader进行处理的,自然我们就会想到,如果想要在css中使用alias功能,那么

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用 Webpack 构建项目时,我们通常会使用 `css-loader` 来解析 CSS 文件,并将其转换为 JavaScript 模块,以便能够被 Webpack 正确处理。`importLoaders` 就是 `css-loader` 的一个配置选项,用来配置在 CSS 文件 `@import` 的资源需要被处理的 `loader` 的数量。 举个例子,假设我们有一个 `index.css` 文件,其使用了 `@import` 导入了一个 `normalize.css` 文件: ```css /* index.css */ @import 'normalize.css'; body { background-color: #fff; } ``` 如果我们使用 `css-loader` 来解析这个 CSS 文件,那么 `normalize.css` 文件也会被解析,但是如果不设置 `importLoaders`,那么 `normalize.css` `@import` 导入的其他资源(如图片、字体等)就不会被 Webpack 处理了。 为了解决这个问题,我们可以设置 `importLoaders`,告诉 `css-loader` 在解析 `index.css` 文件的 `@import` 语句时,需要使用几个 `loader`。比如: ```javascript { test: /\.css$/, use: [ 'style-loader', { loader: 'css-loader', options: { importLoaders: 1 // 表示在解析 @import 语句时使用 1 个 loader } }, 'postcss-loader' ] } ``` 在这个例子,我们设置 `importLoaders: 1`,表示在解析 `index.css` 文件的 `@import` 语句时,需要使用一个 `loader`(即 `postcss-loader`)来处理被导入的资源。这样,`normalize.css` 的资源就能被正确地处理了。 总之,`importLoaders` 的作用是告诉 `css-loader` 在处理 `@import` 导入的 CSS 文件时,需要使用多少个 `loader`。这个选项通常用于处理被导入的 CSS 文件的资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值