Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript babel.config.js中的环境变量_Javascript_Typescript_Expo_Babeljs - Fatal编程技术网

Javascript babel.config.js中的环境变量

Javascript babel.config.js中的环境变量,javascript,typescript,expo,babeljs,Javascript,Typescript,Expo,Babeljs,我们需要根据环境(本地/dev/staging/production)修改React本机应用程序(使用Expo构建)中的某些配置/变量。我已经查看了许多用于此目的的库,但所有库似乎都有一个缺陷,与我们的用例不同: (中断是因为它试图在运行时访问“fs”,但由于它不是纯JS包且不能被Expo捆绑,因此不再可用) (无法与Expo一起使用,因为它需要本机代码作为插件的一部分) (有点可行,但会在内部缓存config并忽略任何.env更改,直到导入变量的文件被修改) 作为一个不需要第三方插件的更干

我们需要根据环境(本地/dev/staging/production)修改React本机应用程序(使用Expo构建)中的某些配置/变量。我已经查看了许多用于此目的的库,但所有库似乎都有一个缺陷,与我们的用例不同:

  • (中断是因为它试图在运行时访问“fs”,但由于它不是纯JS包且不能被Expo捆绑,因此不再可用)
  • (无法与Expo一起使用,因为它需要本机代码作为插件的一部分)
  • (有点可行,但会在内部缓存config并忽略任何.env更改,直到导入变量的文件被修改)
作为一个不需要第三方插件的更干净的替代方案,我正在考虑使用babel的选项,并在
babel.config.js
中将所有环境作为单独的json对象列出。然而,我没有看到太多关于这方面的文档或示例。我是否只需添加与包含
生产
开发
等字段的
预设
插件
相同级别的
环境
字段,如下例所示:

module.exports = (api) => {
    api.cache(true);
    return {
        presets: [...],
        env: {
            development: {
                CONFIG_VAR: 'foo'
            },
            production: {
                CONFIG_VAR: 'bar'
            }
        }
    }
}

这样行吗?在代码的后面我如何访问这个
CONFIG\u VAR

我在尝试在Expo项目中设置环境变量时遇到了同样的问题。我用过这个

  • 安装插件

     npm install babel-plugin-inline-dotenv
    
  • babel.config.js
    文件中包括插件和.env文件的路径

  • module.exports=函数(api){
    api.cache(true);
    返回{
    预设:['babel-preset-expo'],
    环境:{
    制作:{
    插件:[“内联dotenv”{
    路径:'.env.production'
    }]]
    },
    发展:{
    插件:[“内联dotenv”{
    路径:“.env.development”
    }]]
    }
    }
    };
    
    };谢谢你的帮助。它在我的电脑上对我起作用,但在我做“世博会出版”时就不起作用了。那么环境变量为空。。。你遇到过同样的问题吗?很好!但是您知道如何在
    babel.config.js
    文件本身中访问
    API_KEY
    的值吗?