Configure the source code parsing and compilation options.
source.aliasStrategy
is used to control the priority between the paths
option in tsconfig.json
and the alias
option in the bundler.
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:
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:
Now, the code import { useState } from 'react'
will be replaced with import { useState } from 'preact/compat'
.
Include additional files that should be treated as static assets.
Used to configure the decorators syntax.
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.
Used to set the entry modules for building.
Check out the lib.bundle to learn how to set entry for bundle and bundleless project.
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.
The source.include
is used to specify additional JavaScript files that need to be compiled.
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.
Configure a custom tsconfig.json file path to use, can be a relative or absolute path.