Javascript 在开发模式和生产模式之间切换

Javascript 在开发模式和生产模式之间切换,javascript,reactjs,react-native,expo,Javascript,Reactjs,React Native,Expo,我想有一种方法可以从手机设置中在生产和开发端点之间切换。我担心这会弄乱现金,并可能显示不正确的数据。请问最好的方法是什么 我也在想同样的事情 在代码中,您可以使用\uuu DEV\uuu全局标志来区分开发和生产“模式” Expo的生产交换机不是处理环境交换机(在您的情况下是生产和开发端点)的可靠方式。为什么?2主要原因: 生产模式总是缩小您的代码,更好地体现您的应用程序在最终用户设备上的性能 开发模式包括有用的警告,并允许您访问调试工具 如果您希望能够灵活地针对现有的生产端点运行应用程序,但

我想有一种方法可以从手机设置中在生产和开发端点之间切换。我担心这会弄乱现金,并可能显示不正确的数据。请问最好的方法是什么


我也在想同样的事情

  • 在代码中,您可以使用
    \uuu DEV\uuu
    全局标志来区分开发和生产“模式”

  • Expo的生产交换机不是处理环境交换机(在您的情况下是生产和开发端点)的可靠方式。为什么?2主要原因:

    • 生产模式总是缩小您的代码,更好地体现您的应用程序在最终用户设备上的性能
    • 开发模式包括有用的警告,并允许您访问调试工具
  • 如果您希望能够灵活地针对现有的生产端点运行应用程序,但仍然能够访问调试工具,该怎么办?你不能

    我的方法是:使用
    .env
    文件处理环境切换

    有了Expo,我的
    .env
    可以处理以下内容:

    • 将babel插件内联dotenv添加到devdependences:

      npm安装--保存dev babel插件内联dotenv
      
    • inline dotenv
      添加到.babelrc:

      {
        "plugins": ["inline-dotenv"]
      }
      
    • 添加了
      .env
      文件:

      ENDPOINT="https://development"
      
    .env
    设置说明的荣誉归于

    最后,在代码中使用环境变量:

    <Text>{process.env.ENDPOINT}</Text>
    
    真正需要注意的是,当您想要在生产环境中运行应用程序时。您需要:

  • .env production
    内容复制到
    .env
    文件中
  • 重新启动Expo的Metro Bundler并清除其缓存(必须始终在
    .env
    更改之间重新启动)。在Metro Bundler运行时,通过运行expo r-c或在终端中按shift-r来重新启动并清除缓存
  • 这是我能找到的最理想的方法


    PS:如果你想在应用程序中的开发端点和生产端点之间切换,我只需要使用一个js文件,其中包含每个环境的导出变量。

    你需要在应用程序中设置一个可以将其设置为开发模式的设置?这是非常有用的,你能详细说明一下吗“如果你想在应用程序中的开发端点和生产端点之间切换,我只需要使用一个js文件,其中包含每个环境的导出变量。”这取决于你的特定用例。总体概述:使用一个可以从任何地方轻松访问的变量来连接切换,比如说
    currentEnv
    (可以是'PROD'或'Dev')。您的环境配置可能类似于
    export const env={DEV:{endpint:'https://development'},PROD:{endpint:'https://production“}};
    。然后,在代码中选择
    env[currentEnv].endpoint
    ENDPOINT="https://production"