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" }