场景
有时候咱们须要设置一些环境变量,这里有很多形式。例如:通过特定的标识判断以后是什么环境,再动静读取对应的变量。那么如何通过编译命令设置环境变量呢?咱们能够理解一下 react-native-dotenv。
实现形式
1.装置react-native-dotenv
npm install react-native-dotenv
2.在你的.babelrc(如果没有新建一个)文件中配置一下设置
简略配置,都应用默认参数
{
"plugins": [
["module:react-native-dotenv"]
]
}
定制配置,自定义
{
"plugins": [
["module:react-native-dotenv", {
"envName": "APP_ENV",
"moduleName": "@env",
"path": ".env",
"blocklist": null,
"allowlist": null,
"blacklist": null, // DEPRECATED
"whitelist": null, // DEPRECATED
"safe": false,
"allowUndefined": true,
"verbose": false
}]
]
}
3.在我的项目根目录下新建.env文件,外面能够配置须要的变量,应用key=value的模式
eg:
APP_TRYPE = ZZZ
APP_NAME = AAA
4.应用
import {APP_TRYPE, APP_NAME} from "@env"
console.log('APP_TRYPE:',APP_TRYPE)
输入:APP_TRYPE:ZZZ
console.log('APP_NAME',APP_NAME)
输入:APP_NAME:AAA
如果有多种配置,如果在编译的时候指定应用哪个呢?
1.设置package.json
// package.json
{
"scripts": {
"start:wx": "MY_ENV=wx npx react-native start",
"start:ali": "MY_ENV=ali npx react-native start",
}
}
2.定义envName
为了能应用下面的MY_ENV,须要咱们从新定义envName
{
"plugins": [
["module:react-native-dotenv", {
"envName": "MY_ENV" //这里须要设置为下面package.json对应的
}]
]
}
运行package.json的命令的时候,读取的环境变量文件就是.env.ali,.env.wx
新建.env.wx和 .env.ali文件
.env.wx
APP_TRYPE = wx
APP_NAME = mywx
.env.ali
APP_TRYPE = ali
APP_NAME = myali
应用
运行 npm run start:wx
import {APP_TRYPE, APP_NAME} from "@env"
console.log('APP_TRYPE:',APP_TRYPE)
输入:APP_TRYPE:wx
console.log('APP_NAME',APP_NAME)
输入:APP_NAME:mywx
运行 npm run start:ali
import {APP_TRYPE, APP_NAME} from "@env"
console.log('APP_TRYPE:',APP_TRYPE)
输入:APP_TRYPE:ali
console.log('APP_NAME',APP_NAME)
输入:APP_NAME:myali
到这里,咱们曾经能够通过不同的命令来指定不同的变量