resolve.extensions

  • 类型: string[]
  • 默认值: ['.ts', '.tsx', '.mjs', '.js', '.jsx', '.json']
  • 版本: >= 1.1.9

自动添加导入文件的扩展名。这意味着你可以导入文件,而不需要显式地写它们的扩展名。

例如,如果导入 './index',Rsbuild 将尝试按以下顺序解析:

  • ./index.ts
  • ./index.tsx
  • ./index.mjs
  • ./index.js
  • ./index.jsx
  • ./index.json
TIP

不建议使用 resolve.extensions 来省略 .vue 等自定义的扩展名,因为这可能会干扰 IDE 和类型支持。

示例

resolve.extensions 配置的值会覆盖 Rsbuild 的默认值:

rsbuild.config.ts
export default {
  resolve: {
    extensions: ['.ts', '.tsx', '.js'],
  },
};

Rspack 配置

resolve.extensions 是 Rspack 提供的配置,参考 Rspack - resolve.extensions

事实上,你也可以使用 tools.rspack 来配置它:

rsbuild.config.ts
export default {
  tools: {
    rspack: {
      resolve: {
        extensions: ['.ts', '.tsx', '.js'],
      },
    },
  },
};

这两种用法的区别在于配置合并的方式。

tools.rspack 基于 webpack-merge 来合并配置中的数组,这意味着 tools.rspack.resolve.extensions 会与 Rsbuild 的默认值合并,而不是覆盖它。