For AI agents: the complete documentation index is available at /next/llms.txt, the full documentation bundle is available at /next/llms-full.txt, and this page is available as Markdown at /next/api/packages/react-rsbuild-plugin/interfaces/DefineDceVisitorConfig.md.
Lynx
  • English
  • Interface: DefineDceVisitorConfig

    Like define in various bundlers, but this one happens at transform time, and a DCE pass will be performed.

    Properties

    define

    define: Record<string, string>

    Replaces variables in your code with other values or expressions at compile time.

    Remarks

    Caveat: differences between source.define

    defineDCE happens before transforming background-only directives. So it's useful for eliminating code that is only used in the background from main-thread.

    Example

    import { defineConfig } from '@lynx-js/rspeedy'
    import { pluginReactLynx } from '@lynx-js/react-rsbuild-plugin'
    
    export default defineConfig({
      plugins: [
        pluginReactLynx({
          defineDCE: {
            define: {
              __FOO__: 'false',
              'process.env.PLATFORM': '"lynx"',
            },
          },
        })
      ],
    })

    Then, __FOO__ and process.env.PLATFORM could be used in source code.

    if (process.env.PLATFORM === 'lynx') {
      console.log('lynx')
    }
    
    function FooOrBar() {
      if (__FOO__) {
        return <text>foo</text>
      } else {
        return <text>bar</text>
      }
    }
    Except as otherwise noted, this work is licensed under a Creative Commons Attribution 4.0 International License, and code samples are licensed under the Apache License 2.0.