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