Closed cheshire137 closed 8 years ago
hi @cheshire137 I do this by using Webpack's DefinePlugin to pass selected system variables through.
In the current generator version (the config system is refactored for the upcoming V4 release) you will have to modify these files:
Search for the plugins
array (the above links are linked to the line numbers in the current release) and add or modify the DefinePlugin()
entry to include a key/value of 'process.env.CLIENT_ID': JSON.stringify(process.env.CLIENT_ID)
:
new webpack.DefinePlugin({
'process.env.CLIENT_ID': JSON.stringify(process.env.CLIENT_ID)
}),
cfg/dev.js
for example might look like:
plugins: [
new webpack.HotModuleReplacementPlugin(),
new webpack.NoErrorsPlugin(),
new webpack.DefinePlugin({
'process.env.CLIENT_ID': JSON.stringify(process.env.CLIENT_ID)
}),
new BowerWebpackPlugin({
searchResolveModulesDirectories: false
})
],
cfg/dist.js
like:
plugins: [
// ...
new webpack.DefinePlugin({
'process.env.NODE_ENV': '"production"',
'process.env.CLIENT_ID': JSON.stringify(process.env.CLIENT_ID)
}),
// ...
],
cfg/test.js
like (this file will also need a let webpack = require('webpack');
at the top)
plugins: [
new BowerWebpackPlugin({
searchResolveModulesDirectories: false
}),
new webpack.DefinePlugin({
'process.env.CLIENT_ID': JSON.stringify(process.env.CLIENT_ID)
})
]
This way, Webpack exposes the system's env value for a specific key to the code that is transpiled into a bundle. Thus your reference in src/config/base.js
should no longer be undefined
, but use the value of process.env.CLIENT_ID
.
@cheshire137 I will close this issue due to inactivity, feel free to re-open it anytime if you have further questions.
I'm trying to modify src/config/base.js to include an environment variable value like so:
However,
id
is alwaysundefined
. I canconsole.log(process.env);
in server.js and I see the CLIENT_ID environment variable as expected. So something strips it out before it makes it to the app, thus I'm not sure where configuration should live.