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
// 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.
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.