source

Configure the source code parsing and compilation options.

source.aliasStrategy source.aliasStrategysource.aliasStrategy

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

source.alias source.aliassource.alias

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

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

  • The source.alias is used when bundling target code into the product (when lib.bundle is set to true). It allows you to replace the target module you want to include in the output with another module.

    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 {
      // ...
      source: {
        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 {
      // ...
      source: {
        alias: {
          react: 'preact/compat',
          'react-dom': 'preact/compat',
        },
      },
    };

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

source.assetsInclude source.includesource.include

Include additional files that should be treated as static assets.

source.decorators source.decoratorssource.decorators

Used to configure the decorators syntax.

source.define source.definesource.define

Replaces variables in your code with other values or expressions at compile time. This can be useful for allowing different behavior between development builds and production builds.

source.entry source.entrysource.entry

Used to set the entry modules for building.

INFO

Check out the lib.bundle to learn how to set entry for bundle and bundleless project.

source.exclude source.excludesource.exclude

Specifies JavaScript/TypeScript files that do not need to be compiled. The usage is consistent with Rule.exclude in Rspack, which supports passing in strings or regular expressions to match the module path.

source.include source.includesource.include

The source.include is used to specify additional JavaScript files that need to be compiled.

source.transformImport source.transformImportsource.transformImport

Transform the import path, which can be used to modularly import the subpath of third-party packages. The functionality is similar to babel-plugin-import.

source.tsconfigPath source.tsconfigPathsource.tsconfigPath

Configure a custom tsconfig.json file path to use, can be a relative or absolute path.