resolve用来配置webpack如何寻找模块。非常显著的一个优点是使得代码更加精简清爽。
下面介绍下比较常用的配置:
1.alias
alias意为别名。
js
module.exports = {
resolve: {
alias: {
'@': path.resolve(__dirname, '/path/to/src'),
}
}
}使用上面的配置,就可以使@映射到src目录。譬如没有使用alias相关配置之前,导入模块路径是这样的:../../src/path/to/main.js。使用之后,代码可以是这样:@/path/to/main.js。
2.extensions
extensions意为扩展。在这里特指文件扩展名。
默认值为:[".js", ".json"]。
js
module.exports = {
resolve: {
// 在这里设置的数组 会覆盖extensions的默认值。
extensions: [".vue", ".js", ".json"]
}
}import target from '@/src/views/target'
假设target是文件,这样的语法,会按照优先级分别寻找target.vue、target.js、target.json。
3.enforceExtension
如果是true,将不允许无扩展名(extension-less)文件。默认如果 ./foo 有 .js 扩展,require('./foo') 可以正常运行。但如果启用此选项,只有 require('./foo.js') 能够正常工作。
默认值为false。
其他extensions相关配置可见官网