添加react-native配置后出错:无法在模块外部使用import语句

问题描述 投票:0回答:1

在开发 React-native 应用程序时,我使用 process.env 来检查我的应用程序是在 app.config.ts 中进行生产还是开发:

import { ExpoConfig, ConfigContext } from 'expo/config';    
import Config from "react-native-config"
const isProd = process.env.NODE_ENV === "production"

console.log("CONFIG", Config.NODE_ENV)

export default ({ config }: ConfigContext): ExpoConfig => ({
   ...config,
   extra: {
      endpoint: isProd ? "AA" : "BB"
   }
   ...

但我注意到从 Xcode 构建时未设置 process.env,因此我尝试添加react-native-config以便每次都使用正确的 .env。 使用yarn add安装后,添加 pod 'react-native-config', :path => '../node_modules/react-native-config' 和 pod 'react-native-config/Extension', :path => ' ../node_modules/react-native-config' 到 podfile 并尝试构建应用程序,我不断收到以下错误:

import { NativeModules } from 'react-native';
^^^^^^

SyntaxError: Cannot use import statement outside a module
ios xcode react-native expo react-native-config
1个回答
0
投票
  • 您在使用 ES6 模块语法时遇到问题 (导入/导出)在不支持它的文件中。错误是 与您要尝试的文件中的导入语句相关 从“react-native”导入 NativeModules。

  • 将您的项目配置为始终使用 ES6 模块语法。它 包括配置 babel 来转译你的代码并启用 babel.config.js 文件中的 esModuleInterop 选项。

  • 或者,您可以使用 import 语句将文件转换为使用 CommonJS 语法 (require/module.exports)

    # Change this :
    import { NativeModules } from 'react-native';
    
    # To this :
    const { NativeModules } = require('react-native');
    
© www.soinside.com 2019 - 2024. All rights reserved.