Detecting production vs. development React at runtime

后端 未结 3 392
清酒与你
清酒与你 2021-01-30 12:00

Is it possible to detect whether the current version of React is development or production at runtime? I\'d like to do something like this:

if (React.isDevelopme         


        
相关标签:
3条回答
  • 2021-01-30 12:37

    I use a helper file (in Typescript):

    import process from "process";
    
    const development: boolean = !process.env.NODE_ENV || process.env.NODE_ENV === 'development';
    
    export default function isDev(): boolean
    {
        return development;
    }
    

    Then elsewhere I use it like this:

    import isDev from "./helpers/DevDetect";
    
    if (isDev())
    {
        ...
    }
    
    0 讨论(0)
  • 2021-01-30 12:51

    I wanted access to this from the index.html and desired a solution which didn't involve ejecting webpack or configuring it with additional modules and I came up with this.

    Sources are David's answer above and the create-react-app documentation for using environment variables in the html file

    if ( ! '%NODE_ENV%' || '%NODE_ENV%' === 'development') {
      // dev code
    } else {
      // production code    
    }
    
    0 讨论(0)
  • 2021-01-30 12:57

    This is best done emulating the Node way of doing things with your build tool - webpack, browserify - by exposing process.env.NODE_ENV. Typically, you'll have it set to "production" in prod and "development" (or undefined) in dev.

    So your code becomes:

    if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') {
        // dev code
    } else {
        // production code
    }
    

    For how to set it up, see envify or Passing environment-dependent variables in webpack

    0 讨论(0)
提交回复
热议问题