lib.redirect
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.
- Type:
- Default:
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.
redirect.js
Controls the redirect of the import paths of output JavaScript files.
- Example:
By default, when set compilerOptions.paths to { "@/*": ["src/*"] } in tsconfig.json, the import path for the JavaScript output file will be redirected to the correct relative path and the corresponding file extension will be added:
When output.externals is configured and a request is matched, neither redirect.js.path nor redirect.js.extension will take effect, and the final redirected request path will be entirely controlled by output.externals.
redirect.js.path
Whether to automatically redirect the import paths of JavaScript output files.
- Type:
boolean - Default:
true
When set to true, resolve.alias and resolve.aliasStrategy will take effect in the output file, and the import path of the output file will be redirected. 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.
- Example:
When set compilerOptions.paths to { "@/*": ["src/*"] } in tsconfig.json, the import path for the JavaScript output file will be redirected to the correct relative path:
redirect.js.extension
Whether to automatically redirect the file extension of import paths based on the JavaScript output files.
- Type:
boolean - Default:
true
When set to true, the file extension of import paths in JavaScript output files that can be resolved correctly will be automatically completed or replaced.
When set to false, import paths will retain their original file extensions.
The extension of the JavaScript output file is related to the autoExtension configuration.
- Example:
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.
redirect.style
Controls the redirect of the import paths of output style files.
- Example:
By default, when compilerOptions.paths is set to { "@/*": ["src/*"] } in tsconfig.json, the import paths of style output files will be redirected to the correct relative paths. Additionally, when importing CSS Modules, the file extension will be rewritten to the corresponding JavaScript output file extension.
redirect.style.path
Whether to automatically redirect the import paths of style output files.
- Type:
boolean - Default:
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.
- Example:
When set compilerOptions.paths to { "@/*": ["src/*"] } in tsconfig.json, the import path for the style output file will be redirected to the correct relative path.
When importing normal style files:
When importing CSS Modules files:
redirect.style.extension
Whether to automatically redirect the file extension of import paths based on the style output files.
- Type:
boolean - Default:
true
When set to true:
- When importing a normal style file, the path will be redirected to
.css. - When importing CSS Modules, the file extension will be redirected to the corresponding JavaScript output file extension.
When set to false, the file extension will remain unchanged from the original import path.
- Example:
When importing from a .less file:
redirect.asset
Controls the redirect of the import paths of output asset files.
- Example:
By default, when compilerOptions.paths is set to { "@/*": ["src/*"] } in tsconfig.json, the import paths of asset files will be redirected to the correct relative paths, and the file extensions will be rewritten to the corresponding JavaScript output file extensions.
redirect.asset.path
Whether to automatically redirect the import paths of asset output files.
- Type:
boolean - Default:
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.
- Example:
When set compilerOptions.paths to { "@/*": ["src/*"] } in tsconfig.json, the import path for the asset file will be redirected to the correct relative path:
redirect.asset.extension
Whether to automatically redirect the file extension of import paths based on the asset output files.
- Type:
boolean - Default:
true
When set to true, the file extension of imported asset files will be redirected to the corresponding JavaScript output file extension.
When set to false, the file extension will remain unchanged from the original import path.
- Example:
The way to import static assets in a JavaScript file and the corresponding output structure, please see Import static assets.
redirect.dts
Controls the redirect of the import paths of output TypeScript declaration files.
- Example:
By default, when compilerOptions.paths is set to { "@/*": ["src/*"] } in tsconfig.json, the import path in the declaration output file will be redirected to the correct relative path:
redirect.dts.path
Whether to automatically redirect the import paths of TypeScript declaration output files.
- Type:
boolean - Default:
true
When set to true, Rslib will redirect the import path in the declaration 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.
- Example:
When compilerOptions.paths is set to { "@/*": ["src/*"] } in tsconfig.json, the import path in the declaration output file will be redirected to the correct relative path:
redirect.dts.extension
Whether to automatically redirect the file extension of import paths based on the TypeScript declaration output files.
- Type:
boolean - Default:
false
When set to true, the file extension of the import path in the declaration file will be automatically completed or replaced with the corresponding JavaScript file extension that can be resolved to the corresponding declaration file.
When set to false, import paths will retain their original file extensions.
The extension of the TypeScript declaration file is related to the dts.autoExtension configuration.
- Example:
When loading a module with moduleResolution: 'nodenext', the import path needs to include the full file extension. Rslib will automatically add the corresponding file extension based on the actual JavaScript output file.
