
Security News
Crates.io Implements Trusted Publishing Support
Crates.io adds Trusted Publishing support, enabling secure GitHub Actions-based crate releases without long-lived API tokens.
vite-plugin-html-inline-sources
Advanced tools
Vite plugin for inlining JS, CSS and SVG into index.html with a declarative vite-inline attribute
A Vite plugin for inlining JS, CSS and SVG into index.html
with a declarative vite-inline
attribute.
<!-- CSS -->
<link vite-inline rel="stylesheet" href="index.css"/>
<!-- JavaScript -->
<script vite-inline type="module" src="index.js"></script>
<!-- TypeScript -->
<script vite-inline type="module" src="index.ts"></script>
Performance gains from bundling JS and CSS sources in HTML are extreme and visible to users immediately on page load.
This plugin should be used for code that applies custom theming, fonts, dark mode and CSS that curbs awkward flash of unstyled content before any network requests for CSS complete.
There are Vite plugins for inlining sources in HTML that focus on inlining all sources into a single file. Plugins that make HTML files without external dependencies are useful for embedded systems and mobile apps. Check out vite-plugin-singlefile for those use cases.
pnpm i -D vite-plugin-html-inline-sources
import {defineConfig} from 'vite'
import inlining from 'vite-plugin-html-inline-sources'
export default defineConfig(() => {
return {
plugins: [inlining()]
}
})
<html lang="en">
<body>
<script vite-inline src="index.ts"></script>
</body>
</html>
vite-inline
behaviorsWithout type="module"
the script will be read from disk and inlined as-is.
JavaScript with type="module"
will use esbuild.build
and bundle all imports in the script output and the script tag
will include the type="module"
attribute.
TypeScript inlining will use esbuild.build
to bundle the script and any of its imports.
don't forget type="module" if you use top-level-await or any other ESM module features
CSS will be inlined as-is with a read of the file from your project directory.
Currently, nothing is done for @import
within your CSS. Imported CSS could be bundled during inlining by using
lightningcss
.
FAQs
Vite plugin for inlining JS, CSS and SVG into index.html with a declarative vite-inline attribute
The npm package vite-plugin-html-inline-sources receives a total of 33 weekly downloads. As such, vite-plugin-html-inline-sources popularity was classified as not popular.
We found that vite-plugin-html-inline-sources demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Crates.io adds Trusted Publishing support, enabling secure GitHub Actions-based crate releases without long-lived API tokens.
Research
/Security News
Undocumented protestware found in 28 npm packages disrupts UI for Russian-language users visiting Russian and Belarusian domains.
Research
/Security News
North Korean threat actors deploy 67 malicious npm packages using the newly discovered XORIndex malware loader.