What is vite-plugin-css-injected-by-js?
vite-plugin-css-injected-by-js is a Vite plugin that allows you to inject CSS directly into the JavaScript bundle. This can be useful for scenarios where you want to avoid separate CSS files and ensure that styles are loaded synchronously with your JavaScript.
What are vite-plugin-css-injected-by-js's main functionalities?
Inject CSS into JavaScript
This feature allows you to configure Vite to inject CSS directly into the JavaScript bundle. By using the `cssInjectedByJsPlugin` in the Vite configuration, the CSS will be included in the JavaScript output, ensuring that styles are applied as soon as the JavaScript is executed.
import { defineConfig } from 'vite';
import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js';
export default defineConfig({
plugins: [cssInjectedByJsPlugin()]
});
Other packages similar to vite-plugin-css-injected-by-js
vite-plugin-style-import
vite-plugin-style-import is a Vite plugin that allows you to import styles on demand. Unlike vite-plugin-css-injected-by-js, which injects CSS into the JavaScript bundle, vite-plugin-style-import focuses on importing styles only when they are needed, reducing the initial load time.
vite-plugin-css-modules
vite-plugin-css-modules is a Vite plugin that provides support for CSS Modules. It allows you to scope CSS by automatically generating unique class names. While vite-plugin-css-injected-by-js injects CSS into JavaScript, vite-plugin-css-modules focuses on modularizing CSS to avoid style conflicts.
Vite Plugin: CssInjectedByJs
A Vite plugin that takes the CSS and adds it to the page through the JS. For those who want a single JS file.
How does it work
Essentially what it does is take all the CSS generated by the build process and add it via JavaScript.
The CSS file is therefore not generated and the declaration in the generated HTML file is also removed.
You can also configure when the CSS injection will be executed (before or after your app code).
Installation
npm i vite-plugin-css-injected-by-js --save
Usage
import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js'
export default {
plugins: [
cssInjectedByJsPlugin(),
]
}
Configurations
When you add the plugin, you can provide a configuration object.
For now, you can configure only when the injection of CSS is done at execution time topExecutionPriority
.
topExecutionPriority
The default behavior adds the injection of CSS before your bundle code.
If you provide topExecutionPriority
equal to: false
the code of injection will be added after the bundle code.
This is an example:
import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js'
export default {
plugins: [
cssInjectedByJsPlugin({topExecutionPriority: false}),
]
}
styleId
If you provide a string
for styleId
param the code of injection will set the id
attribute of the style
element with the value of the parameter provided.
This is an example:
import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js'
export default {
plugins: [
cssInjectedByJsPlugin({styleId: "foo"}),
]
}
The output injected into the DOM will look like this example:
<head>
<style id="foo"></style>
</head>
Contributing
When you make changes to plugin locally, you may want to build the js from the typescript file of the plugin.
Here the guidelines:
Install
npm install
Build plugin
npm run build
See CONTRIBUTING.md for more information.