npm i -D @apeleghq/esbuild-plugin-inline-jsIn the file you have your configuration, first import this plugin
const inlineJs = require('@apeleghq/esbuild-plugin-inline-js');Or using ES module syntax:
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:
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()],
});Import your inline scripts like this (the extensions supported are inline.js, inline.jsx, inline.ts and inline.tsx):
const inline = require('./foo.inline.js');
// import * as inline from './foo.inline.js';The import will return something like this:
{
"contentBase64":
"KGZ1bmN0aW9uKCl7cmV0dXJuIkhlbGxvLCBXb3JsZCEifSkoKTsK",
"default":
"(function(){return\"Hello, World!\"})();\n",
"sri": "sha384-PKTF85dF3CsFYaS3tntysCSCAPJBKTcMWuzUmxBG0MTrEJMfMFeNSUo+KQGaqzp3"
}