Skip to content

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.vuetarget.jstarget.json

3.enforceExtension

如果是true,将不允许无扩展名(extension-less)文件。默认如果 ./foo.js 扩展,require('./foo') 可以正常运行。但如果启用此选项,只有 require('./foo.js') 能够正常工作。

默认值为false

其他extensions相关配置可见官网