1. modules:
解析模块时搜索的目录,即 require 或 import 模块的时候,只写模块名的时候,到哪里去找,其属性值为数组,因为可配置多个模块搜索路径,其搜索路径必须为绝对路径
比如,src 目录下面有一个 foo.js 文件和 index.js 文件
index.js
// const foo = require("./foo"); // 不加resolve modules配置时必须写全foo.js模块的路径
const foo = require("foo"); // resolve.modules中配置了模块解析路径为.src目录,则可用只写foo即可搜索到foo.js模块
console.log(foo);
resolve: {
modules: [path.resolve(__dirname, "./src/"), "node_modules"]
},
2. alias
resolve: {
modules: [path.resolve(__dirname, "./src/"), "node_modules"],
// 给路径或文件取别名
alias: {
'vue': 'vue/dist/vue.min.js',
'@': path.join(__dirname, '../src/'),
'env.cfg': '',
'pages': path.join(__dirname, '../src/js/pages/'),
}
},
3. extensions
引入模块的时候,如果没有写模块后缀名,webpack 会自动添加后缀,extensions 就是用于设置自动添加后缀的顺序,
resolve: {
modules: [path.resolve(__dirname, "./src/"), "node_modules"],
alias: {
'vue': 'vue/dist/vue.min.js',
},
extensions: ['.js', '.vue', '.scss', '.css', '.html', '.json'],
},
4. mainFields
resolve: {
modules: [path.resolve(__dirname, "./src/"), "node_modules"],
alias: {
'vue': 'vue/dist/vue.min.js',
},
mainFields: ['style', 'main'] // 引入模块时,先引入style,找不到再找main
},

网友评论