@
@是 webpack 设置的路径别名,设置方法如下,在 resolve 属性中设置 alias 属性,将 src 的绝对路径映射到 @。
const path = require('path');
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
devServer: {
port: 8080,
open: true,
compress: true,
static: './dist',
},
entry: {
index: './src/index.js'
},
output:{
path: path.resolve(__dirname, './dist'),
filename: '[name].[hash:8].js'
},
resolve:{
alias: {
'@': path.resolve('src')
}
},
module:{
rules: [
{
test: /\.css$/,
use:[
'style-loader',
{
loader:'css-loader',
options: {
url: true,
import: false,
modules: true,
sourceMap: true
}
}
]
}
]
},
plugins: [
new webpack.CleanPlugin(),
new HtmlWebpackPlugin({
filename:'index.html',
inject: 'body',
template:'./public/index.html'
})
]
}
~
使用方法
@import url('./other.css');
body {
background: red;
background-image: url(@/test.jpeg);
background-image: url(./test.jpeg);
background-image: url(~image/test.jpeg);
}
.index {
color: blue;
}
.orange {
color: orange;
}
如代码中所示。
@代表了 src 文件夹。
~代表了 node_modules 文件夹,image就是 node_modules 文件夹下的一级目录。