在此就介绍一些常用的解析api
alias
设置别名,确保模块引入变得简单
const path = require('path');module.exports = {//...resolve: {alias: {Utilities: path.resolve(__dirname, 'src/utilities/'),Templates: path.resolve(__dirname, 'src/templates/'),},},};
// 之前import Utility from '../../utilities/utility';// 现在import Utility from 'Utilities/utility';
extensions
尝试按顺序解析这些后缀名。如果有多个文件有相同的名字,但后缀名不同,webpack 会解析列在数组首位的后缀的文件 并跳过其余的后缀。
module.exports = {//...resolve: {extensions: ['.js', '.json', '.wasm'],},};
能够使用户在引入模块时不带扩展:
import File from '../path/to/file';
请注意,以上这样使用 resolve.extensions 会 覆盖默认数组,这就意味着 webpack 将不再尝试使用默认扩展来解析模块。然而你可以使用 ‘…’ 访问默认拓展名:
module.exports = {//...resolve: {extensions: ['.ts', '...'],},};
mainFiles
当遇到文件夹的时候向下再解析一级
module.exports = {//...resolve: {mainFiles: ['index'],},};
// fileDir 是文件夹// 之前import File from '../path/to/fileDir';// 之后import File from '../path/to/fileDir/index';
modules
告诉 webpack 解析模块时应该搜索的目录。
绝对路径和相对路径都能使用,但是要知道它们之间有一点差异。
通过查看当前目录以及祖先路径(即 ./node_modules, ../node_modules 等等), 相对路径将类似于 Node 查找 ‘node_modules’ 的方式进行查找。
使用绝对路径,将只在给定目录中搜索。
module.exports = {//...resolve: {modules: ['node_modules'],},};
如果你想要添加一个目录到模块搜索目录,此目录优先于 node_modules/ 搜索:
const path = require('path');module.exports = {//...resolve: {modules: [path.resolve(__dirname, 'src'), 'node_modules'],},};
