@walbay/react-web-config v2.0.0
@walbay/react-web-config
react-native-config for Web. Config variables for React Native apps and React Native Web apps
Module to expose config variables to your javascript code in React Native, supporting both iOS and Android and web.
Overview
react-native-web is a project to bring react-native to the web. Read more.
react-native-web
lets us to write a single app that runs on mobile platform, ie iOS and Android, as well as browser, however, a typical react-native
project will use libraries such as react-native-config
that works perfectly on react-native
but not on react-native-web
. react-web-config
allows you to continue using react-native-config
seamlessly on the web by adding a few lines in your webpack config.
Usage
Step 1 and 2 is what you have done if you follow the guides from react-native-config.
1) Create a new file .env
in the root of your React Native app:
// .env
SUPER_DUPER_API=https://superdupertrivia.com
SECRET_KEY=superdupersecret
2) Then access variables defined there from your app:
// app.js
import Config from '@walbay/react-native-config'
Config.SUPER_DUPER_API // 'https://superdupertrivia.com'
However if you want to have Step 2 to work on a react-native-web
project, you will need to configure the following in your webpack.config.js
:
// webpack.config.js
+ const ReactWebConfig = require('@superdupertrivia/react-web-config/lib/ReactWebConfig').ReactWebConfig;
+ const path = require('path');
+ const envFilePath = process.env.ENVFILE || path.resolve(__dirname, '.env');
module.exports = {
...
plugins: [
...
+ /* define __REACT_WEB_CONFIG__ */
+ ReactWebConfig(envFilePath)
],
resolve: [
alias: [
...
+ /* set alias from react-native-config to react-web-config */
+ 'react-native-config': '@walbay/react-web-config',
'react-native': 'react-native-web'
]
]
}
Contributors
- @tanhauhau (Original Author)
- @Hortau
- @walbay
License
MIT
3 years ago