https://github.com/apeleghq/esbuild-plugin-inline-js
esbuild plugin for inline scripts
https://github.com/apeleghq/esbuild-plugin-inline-js
dataurl esbuild-plugin inline-script javascript
Last synced: 8 months ago
JSON representation
esbuild plugin for inline scripts
- Host: GitHub
- URL: https://github.com/apeleghq/esbuild-plugin-inline-js
- Owner: ApelegHQ
- License: isc
- Created: 2022-05-25T01:53:40.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2025-03-24T15:32:29.000Z (10 months ago)
- Last Synced: 2025-05-08T02:51:49.582Z (8 months ago)
- Topics: dataurl, esbuild-plugin, inline-script, javascript
- Language: TypeScript
- Homepage:
- Size: 176 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY
Awesome Lists containing this project
README
# esbuild plugin for inline scripts
[](https://sonarcloud.io/summary/new_code?id=Exact-Realty_esbuild-plugin-inline-js)
[](https://sonarcloud.io/summary/new_code?id=Exact-Realty_esbuild-plugin-inline-js)
[](https://sonarcloud.io/summary/new_code?id=Exact-Realty_esbuild-plugin-inline-js)
[](https://sonarcloud.io/summary/new_code?id=Exact-Realty_esbuild-plugin-inline-js)
[](https://sonarcloud.io/summary/new_code?id=Exact-Realty_esbuild-plugin-inline-js)

## How to use
### Installing
```sh
npm i -D @apeleghq/esbuild-plugin-inline-js
```
### Configuring esbuild
In the file you have your configuration, first import this plugin
```js
const inlineJs = require('@apeleghq/esbuild-plugin-inline-js');
```
Or using ES module syntax:
```js
import inlineJs from '@apeleghq/esbuild-plugin-inline-js';
```
Then, in your esbuild configuration, add `inlineJs()` to the `plugins` list. `inlineJs` optionally takes an object that is passed to `esbuild.build`, with the exception of the following keys: `entryPoints`, `outdir`, `outfile` and `write`. Minimal example:
```js
const esbuild = require('esbuild');
const responsiveImages = require('@apeleghq/esbuild-plugin-inline-js');
await esbuild
.build({
entryPoints: ['index.js'],
outdir: 'build',
bundle: true,
format: 'cjs',
plugins: [inlineJs()],
});
```
### Getting inline scripts
Import your inline scripts like this (the extensions supported are `inline.js`, `inline.jsx`, `inline.ts` and `inline.tsx`):
```js
const inline = require('./foo.inline.js');
// import * as inline from './foo.inline.js';
```
#### Result
The import will return something like this:
```json
{
"contentBase64":
"KGZ1bmN0aW9uKCl7cmV0dXJuIkhlbGxvLCBXb3JsZCEifSkoKTsK",
"default":
"(function(){return\"Hello, World!\"})();\n",
"sri": "sha384-PKTF85dF3CsFYaS3tntysCSCAPJBKTcMWuzUmxBG0MTrEJMfMFeNSUo+KQGaqzp3"
}
```