Interface: TransformOptions
Extends
Omit<OxcTransformOptions,"sourceType"|"lang"|"cwd"|"sourcemap"|"define"|"inject"|"jsx">
Properties
assumptions?
- Type:
optionalassumptions:CompilerAssumptions
Set assumptions in order to produce smaller output.
Inherited from
Omit.assumptions
decorator?
- Type:
optionaldecorator:DecoratorOptions
Decorator plugin
Inherited from
Omit.decorator
define?
- Type:
optionaldefine:Record<string,string>
Replace global variables or property accessors with the provided values.
Example
Replace the global variable IS_PROD with true
export default defineConfig({
transform: { define: { IS_PROD: 'true' } }
})Result:
// Input
if (IS_PROD) {
console.log('Production mode')
}
// After bundling
if (true) {
console.log('Production mode')
}Replace the property accessor process.env.NODE_ENV with 'production'
export default defineConfig({
transform: { define: { 'process.env.NODE_ENV': "'production'" } }
})Result:
// Input
if (process.env.NODE_ENV === 'production') {
console.log('Production mode')
}
// After bundling
if ('production' === 'production') {
console.log('Production mode')
}dropLabels?
- Type:
optionaldropLabels:string[]
Remove labeled statements with these label names.
Labeled statements are JavaScript statements prefixed with a label identifier. This option allows you to strip specific labeled statements from the output, which is useful for removing debug-only code in production builds.
Example
export default defineConfig({
transform: { dropLabels: ['DEBUG', 'DEV'] }
})Result:
// Input
DEBUG: console.log('Debug info');
DEV: {
console.log('Development mode');
}
console.log('Production code');
// After bundling
console.log('Production code');helpers?
- Type:
optionalhelpers:Helpers
Behaviour for runtime helpers.
Inherited from
Omit.helpers
inject?
- Type:
optionalinject:Record<string,string| [string,string]>
Inject import statements on demand.
The API is aligned with @rollup/plugin-inject.
Supported patterns
{
// import { Promise } from 'es6-promise'
Promise: ['es6-promise', 'Promise'],
// import { Promise as P } from 'es6-promise'
P: ['es6-promise', 'Promise'],
// import $ from 'jquery'
$: 'jquery',
// import * as fs from 'node:fs'
fs: ['node:fs', '*'],
// Inject shims for property access pattern
'Object.assign': path.resolve( 'src/helpers/object-assign.js' ),
}jsx?
- Type:
optionaljsx:false|"react"|"react-jsx"|"preserve"|JsxOptions
Controls how JSX syntax is transformed.
- If set to
false, an error will be thrown if JSX syntax is encountered. - If set to
'react', JSX syntax will be transformed to classic runtime React code. - If set to
'react-jsx', JSX syntax will be transformed to automatic runtime React code. - If set to
'preserve', JSX syntax will be preserved as-is.
plugins?
- Type:
optionalplugins:PluginsOptions
Third-party plugins to use.
Inherited from
Omit.plugins
target?
- Type:
optionaltarget:string|string[]
Sets the target environment for the generated JavaScript.
The lowest target is es2015.
Example:
'es2015'['es2020', 'chrome58', 'edge16', 'firefox57', 'node12', 'safari11']
Default
esnext (No transformation)
See
Inherited from
Omit.target
typescript?
- Type:
optionaltypescript:TypeScriptOptions
Configure how TypeScript is transformed.
Inherited from
Omit.typescript