Load CSS as string using JS & Webpack import prefixes

People will tell you it's an antipattern, but what if a library needs you to do this?
Webpack's raw-loader
package can be used to load any file into a string. Experience tells us that sometimes it's just the only way to make something work...
After adding it to your project's devDependencies
, you might run into this issue: how to configure it in my create-react-app
project where there's no webpack.config.js
file accessible?
It turns out that Webpack has a concept of inline loader usage with import prefixes:
/* eslint import/no-webpack-loader-syntax: off */
import styleAsString from '!!raw-loader!../styles/foo.css';
This will load the raw contents of foo.css
into a variable. Since create-react-app
has a very strict linter that isn't happy with this, a directive to suppress the linter's objection is needed, too.
Related posts
Dive deeper into this topic with these related posts
You might also like
Discover more content from this category
It's easy to contain absolute positioned elements. Things get a little trickier when you want to contain a fixed positioned element without changing its stylings.
Sometimes we want to store some piece of information while using a terminal, for example, a result of an executed command. We usually save it into some temporary file which is going to be deleted after all. There’s a better way.
Warnings in Elixir are usually an important sign of a problem in the codebase. There is an easy way to make them gone.