We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Is your feature request related to a problem? Please describe.
React Slingshot should be more versatile when dealing with multiple environments and their configuration.
Dotenv should be supported via Dotenv-Webpack.
Describe the solution you'd like Dotenv-webpack plugin should be integrated into the webpack.config.dev.js and webpack.config.prod.js
webpack.config.dev.js
webpack.config.prod.js
// webpack.config.dev.js // omitted plugins: [ new Dotenv({systemvars: true}), new HardSourceWebpackPlugin(), new webpack.HotModuleReplacementPlugin(), // omitted
// webpack.config.prod.js // DefinePlugin and GLOBALS is no longer needed // const GLOBALS = { // 'process.env.NODE_ENV': JSON.stringify('production'), // __DEV__: false // }; // omitted plugins: [ // new webpack.DefinePlugin(GLOBALS), new Dotenv({systemvars: true}), // omitted
Remove the following from tools/build.js. This should be controlled by the .env file not hard coded.
tools/build.js
// tools/build.js process.env.NODE_ENV = 'production';
A new .env.default file should be provided in the root directory, out of the box, with a similar approach:
.env.default
// .env.default NODE_ENV= APP_NAME= APP_RESOURCE_URL=
The src package should contain a new config directory, out of the box, with a similar approach:
src
config
// src/config/appConfig.js import axios from "axios"; export default { site: { name: process.env.APP_NAME, }, axiosClients: { resourceClient: { client: axios.create({ baseURL: process.env.APP_RESOURCE_URL, responseType: 'json', }) } } };
Recommended: An .env entry should be added to the .gitignore file, out of the box.
To use the configuration simply import from the config file:
import config from "../config/appConfig"; console.log(config.site.name);
Describe alternatives you've considered
Additional context When a user clones React Slingshot he/she will need to create a .env file. A stretch goal, the setup.js could generate one.
.env
setup.js
A deployment should work as follows:
Overall, this is not perfect but gives a lot more flexibility when deploying to multiple ENVS.
The text was updated successfully, but these errors were encountered:
PR #590 attempts to implement this.
Sorry, something went wrong.
No branches or pull requests
Is your feature request related to a problem? Please describe.
React Slingshot should be more versatile when dealing with multiple environments and their configuration.
Dotenv should be supported via Dotenv-Webpack.
Describe the solution you'd like
Dotenv-webpack plugin should be integrated into the
webpack.config.dev.js
andwebpack.config.prod.js
Remove the following from
tools/build.js
. This should be controlled by the .env file not hard coded.A new
.env.default
file should be provided in the root directory, out of the box, with a similar approach:The
src
package should contain a newconfig
directory, out of the box, with a similar approach:Recommended: An .env entry should be added to the .gitignore file, out of the box.
To use the configuration simply import from the config file:
Describe alternatives you've considered
Additional context
When a user clones React Slingshot he/she will need to create a
.env
file. A stretch goal, thesetup.js
could generate one.A deployment should work as follows:
Overall, this is not perfect but gives a lot more flexibility when deploying to multiple ENVS.
The text was updated successfully, but these errors were encountered: