How to pass aliases information to ESBuild when using Vite?

38 views Asked by At

When pre-bundling dependencies, ESBuild doesn't use Vite's resolve.alias configuration. ESBuild itself has its own alias configuration. But that doesn't seem to be working. This is my configuration:

function getAliases() {
  const aliases = [
    {
      find: '@org/svgs',
      replacement: path.resolve(process.cwd(), 'node_modules', '@org/icons')
    },
  ];

  return aliases;
}

const config = defineConfig({
    // ... Other Vite configuration
    optimizeDeps: {
      // ... Other optimizeDeps options
      esbuildOptions: {
        alias: {
          '@org/svgs': '@org/icons',
        },
        plugins: [
          svgr({
            exportType: 'default',
            expandProps: false,
            jsxRuntime: 'classic',

          }),
        ],
        resolveExtensions: extensions,
      },
      extensions: ['.svg'],
    },
    resolve: {
      extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.svg'],
      dedupe: [],
      alias: getAliases(),
    },
  });

export default config;

Is there some other way or Vite/ESBuld plugin I can use to rewrite aliases for ESBuild especially during pre-bundling?

0

There are 0 answers