resolve

resolve.aliasStrategy resolve.aliasStrategyresolve.aliasStrategy

resolve.aliasStrategy is used to control the priority between the paths option in tsconfig.json and the alias option in the bundler.

resolve.alias resolve.aliasresolve.alias

Create aliases to import or require certain modules, same as the resolve.alias config of Rspack.

It is important to note that resolve.alias differs from output.externals in the following ways:

  • resolve.alias allows you to replace the target module you want to include in the output bundles with another module. It only works if lib.bundle is set to true.

    For example, if you want to replace lodash with lodash-es in a bundled CLI application, you can configure it as follows:

    rslib.config.ts
    export default {
      // ...
      resolve: {
        alias: {
          lodash: 'lodash-es',
        },
      },
    };

    All lodash modules imported in the source code will be mapped to lodash-es and be bundled into the output.

  • output.externals is used to handle alias mapping for externalized modules. Externalized modules are not included in the bundle; instead, they are imported from external sources at runtime.

    For example, if you want to replace react and react-dom with preact/compat in the bundle, you can configure it as follows:

    rslib.config.ts
    export default {
      // ...
      output: {
        externals: {
          react: 'preact/compat',
          'react-dom': 'preact/compat',
        },
      },
    };

    Now, the code import { useState } from 'react' will be replaced with import { useState } from 'preact/compat'.

resolve.dedupe resolve.deduperesolve.dedupe

resolve.dedupe is used to resolve the specified packages from project root, which is useful for deduplicating packages and reducing the bundle size.