webpack中 resolve.alias 配置,@import相关踩坑
1、在使用webpack打包项目时,可以在配置文件中配置resolve.alias来定义一些绝对路径,方便在项目中灵活使用路径,举例如下:
resolve: { extensions: [‘.js‘, ‘.vue‘], alias: { ‘@‘: path.resolve(__dirname, ‘src‘), ‘@scss‘: path.resolve(__dirname, ‘src‘, ‘scss‘), '@/common': path.join(process.cwd(), 'client/modules/common'), } }
2、配置之后,引用会发生如下变化:
// 相对路径引入 import hongAlert from ‘./../src/scss/test.less‘; @import ‘./../common/styles/test.less‘; // 配置后改写为绝对路径引入 import hongAlert from ‘@less/test.scss‘; @import '~@/common/styles/test.less';
注意:scss和less文件使用绝对路径引入时,需要在引入路径前面加上‘~’,不然会报错,找不到对应路径;
波浪号是为了防止css-loader把@ 解析为相对路径