rollup-plugin-inline-ts
v1.0.6
Published
A Rollup plugin to process TypeScript code inside <script lang="ts"> tags.
Maintainers
Readme
rollup-plugin-inline-ts
⚡ A Rollup plugin to process TypeScript code inside <script lang="ts"> tags.
Supports compilation using one of four engines: oxc, swc, esbuild, or typescript.
Only transpile, without type checking and diagnostics.
Requirements
This plugin requires Node.js v14.16.1+ (LTS recommended).
Install
npm install rollup-plugin-inline-ts --save-devOptional: Install one of the transpiler engines as needed
npm install oxc-transform --save-devnpm install @swc/core --save-devnpm install esbuild --save-devnpm install typescript --save-devUsage
Create a rollup.config.js configuration file and import the
plugin:
import inlineTs from 'rollup-plugin-inline-ts';
export default {
// ...
plugins: [
// ...
inlineTs(),
],
};Example with all available options:
import inlineTs from 'rollup-plugin-inline-ts';
export default {
// ...
plugins: [
// ...
inlineTs({
extensions: ['.html', '.xht'], // Files to process
engine: 'swc', // Transpiler engine
options: { jsc: { parser: { syntax: 'typescript' } } }, // Engine specific options
tsScriptAttr: 'lang="ts"', // Match attribute
jsScriptAttr: '', // Replacement attribute
logPrefix: '[inline-ts]', // Log prefix
debug: false, // Debug logging
}),
],
};Options
extensions
Type: Array<string>
Default: ['.html']
File extensions for <script lang="ts"> blocks processing.
engine
Type: 'oxc' | 'swc' | 'esbuild' | 'typescript'
Default: 'oxc'
Transpilation engine to use.
options
Type: object (depends on specified engine)
Default: engine-specific
Passed directly to the underlying transpiler.
| Engine | Type | Package | Default |
| ------------ | ----------------------------------------------------------------------------- | -------------------------------------------------------------- | ----------------------------------------------- |
| oxc | TransformOptions | oxc-transform | {} |
| swc | Config | @swc/core | { jsc: { parser: { syntax: 'typescript' } } } |
| esbuild | TransformOptions | esbuild | { loader: 'ts' } |
| typescript | CompilerOptions | typescript | { target: ts.ScriptTarget.ESNext } |
tsScriptAttr
Type: string
Default: 'lang="ts"'
Attribute used to detect TypeScript <script> tags.
jsScriptAttr
Type: string
Default: ''
Attribute to replace tsScriptAttr with after transpilation.
keepComponentImports
Type: boolean
Default: true
If set to true, the plugin will preserve import statements for files with extensions listed in the extensions option.
These imports will not be removed as unused during the transformation.
logPrefix
Type: string
Default: '[inline-ts]'
Prefix for plugin logs.
debug
Type: boolean
Default: false
Enable debug logging.
How it works
- Scans input files with configured extensions (e.g.,
.html). - Detects
<script lang="ts">blocks. - Transpiles TypeScript code using the specified engine.
- Replaces the script content and removes or updates the tag’s
langattribute. - Preserves imports with extensions from
extensionsoption to avoid them being removed as unused.
