denisstasyev/rollup-plugin-inline-code(opens in a new tab)
Language: TypeScript
Rollup plugin to inline JavaScript code with TypeScript support based on prefix
- stars
- 6
- watchers
- 2
- forks
- 2
- open issues
- 2
- Last updated
- 07/13/2021
Language: TypeScript
Rollup plugin to inline JavaScript code with TypeScript support based on prefix
Rollup plugin for inline scripts into code
This Rollup plugin is like raw-loader plugin for Webpack
npm i rollup-plugin-inline-code
Start by updating your rollup.config.js file
rollup.config.js
import inlineCode from 'rollup-plugin-inline-code' export default { input: ..., output: ..., plugins: [inlineCode()], }
Then modify the import with the prefix inline!
Any JavaScript or TypeScript file of your project
import html from 'common-tags/lib/html' // Optional template literal tag function to remove spaces inside HTML-like string import INLINE_SCRIPT from 'inline!./src/assets/inline.js' // Note the extension is important here (not to be missed) import INLINE_SVG from 'inline!./src/assets/sample.svg' ... return html` <!DOCTYPE html> <html lang="en"> <head> ... </head> <body> <!-- Inline Script --> <script> ${INLINE_SCRIPT} </script> <!-- Inline SVG --> ${INLINE_SVG} ... </body> </html> ` ...
This rollup-plugin-inline-code replaces INLINE_SCRIPT and INLINE_SVG with file contents, success 🎊
You can simply fix the code highlighting when importing into Typescript files. To do this, you need to declare a global module
src/typings/global.d.ts
declare module 'inline!*' { const inlineCode: string export default inlineCode }
Then you need to modify tsconfig.json to set global typings path with the typeRoots option
tsconfig.json
{
"compilerOptions": {
...
"typeRoots": ["node_modules/@types", "src/typings/global.d.ts"]
...
},
...
}That's it, restart your TypeScript server and see no import errors 🎉
P.S. To restart the TypeScript server in VSCode, you need to open search (Cmd+P on MacOS) and then type TypeScript: Restart TS server with any open TypeScript file
| Name | Type | Default | Description |
|---|---|---|---|
| prefix | string | inline! |
Custom prefix to detect inline code |
To use parameters, pass them in rollup.config.js as shown below
rollup.config.js
... plugins: [inlineCode({ prefix: 'myCustomPrefix!' })] ...
MIT © Denis Stasyev