redirect
is the unique configuration for bundleless mode. It will not take effect in bundle mode where all output files are bundled into a single file, eliminating the need for import path redirection.
Configure the redirect for import paths in output files.
In bundleless mode, there are often needs such as using aliases or automatically appending suffixes for ESM outputs. The redirect
configuration is designed to address these issues.
Controls the redirect of the import paths of output JavaScript files.
When output.externals is configured and a request is matched, neither redirect.js.path
nor redirect.js.extension
will take effect, and the final rewritten request path will be entirely controlled by output.externals.
Whether to automatically redirect the import paths of JavaScript output files.
boolean
true
When set to true
, resolve.alias and resolve.aliasStrategy will take effect and applied in the rewritten import path of the output file. For TypeScript projects, just configure compilerOptions.paths in the tsconfig.json
file.
When set to false
, the import path will not be effected by resolve.alias, resolve.aliasStrategy and tsconfig.json
.
When set compilerOptions.paths
to { "@/*": ["src/*"] }
in tsconfig.json
, the output file will be redirected to the correct relative path:
Whether to automatically redirect the file extension to import paths based on the JavaScript output files.
boolean
true
When set to true
, the file extension will automatically be added to the rewritten import path of the output file, regardless of the original extension or whether it is specified in the import path.
When set to false
, the file extension will remain unchanged from the original import path in the rewritten import path of the output file (regardless of whether it is specified or specified as any value).
The extension of the JavaScript output file is related to the autoExtension configuration.
For ESM outputs running in Node.js, the full extension to the module import path must be specified to load correctly. Rslib will automatically add corresponding file extensions based on the actual output JavaScript file.
Controls the redirect of the import paths of output style files.
Whether to automatically redirect the import paths of style output files.
boolean
true
When set to true
, the relevant redirect rules are the same as redirect.js.path.
When set to false
, the original import path will remain unchanged.
When importing normal style files:
When importing CSS Modules files:
Whether to automatically redirect the file extension to import paths based on the style output files.
boolean
true
When set to true
:
.css
.When set to false
, the file extension will remain unchanged from the original import path.
When importing from a .less
file:
Controls the redirect of the import paths of output asset files.
boolean
true
When set to true
, the paths of imported asset files will be redirected to the corresponding JavaScript output file.
When set to false
, the file extension will remain unchanged from the original import path.
Controls the redirect of the import paths of output TypeScript declaration files.
Whether to automatically redirect the import paths of TypeScript declaration output files.
boolean
true
When set to true
, Rslib will redirect the import path in the DTS output file to the corresponding relative path based on the compilerOptions.paths configured in tsconfig.json
.
When set to false
, the original import path will remain unchanged.
When compilerOptions.paths
is set to { "@/*": ["src/*"] }
in tsconfig.json
, the DTS output file will be redirected to the correct relative path:
Whether to automatically redirect the file extension to import paths based on the TypeScript declaration output files.
boolean
false
When set to true
, the import paths in DTS files will be redirected to the corresponding JavaScript extension which can be resolved to corresponding DTS file.
When set to false
, the file extension will remain unchanged from the original import path in the rewritten import path of the output file (regardless of whether it is specified or specified as any value).
The extension of the TypeScript declaration file is related to the dts.autoExtension configuration.
For the .d.mts
declaration file, in some scenarios, the full extension of the module import path is needed to load correctly.