I have a react component which has X options for a stylesheet to be imported which is using CSS Modules.
I ideally want to have a global environment variable fetched
For example as a workaround when your component is mounting you can try check env variables and then require specific css file like below:
class App extends Component {
componentWillMount() {
if(process.env.CUSTOM_ENV_VAR === 'test') {
require('styles1.css');
} else {
require('styles2.css');
}
}
}
Resolving it as a promise should do the trick with css modules:
if (process.env.CUSTOM_ENV_VAR === 'theme1') {
import('./theme1.css').then(() => {
// ...
});
else (process.env.CUSTOM_ENV_VAR === 'theme2') {
import('./theme2.css').then(() => {
//...
});
}
import(`./${process.env.CUSTOM_ENV_VAR}.css`).then(() => {
//...
});
reference-part: ES6 Module Loader