esbuild-plugin-solid
    TypeScript icon, indicating that this package has built-in type declarations

    0.4.2 • Public • Published

    esbuild-plugin-solid

    Plugin to compile solid-js jsx components with esbuild.

    /!\ Disclaimer /!\

    At the time of writing this, esbuild is not AS performant in term of dead code elimination as rollup is.

    Rollup is the preferred way to bundle solid apps as it generally produce smaller code.

    In my tests, a hello world :

    • rollup: 5.95kb
    • esbuild: 9.65kb

    Install

    solid-js and esbuild are peer dependencies

    # For npm
    npm install solid-js
    npm install -D esbuild esbuild-plugin-solid
    
    # For pnpm
    pnpm add solid-js
    pnpm add -D esbuild esbuild-plugin-solid
    
    # For yarn
    yarn add solid-js
    yarn add -D esbuild esbuild-plugin-solid

    Usage

    Once installed you need to configure esbuild to use this plugin.

    const { build } = require('esbuild');
    const { solidPlugin } = require('esbuild-plugin-solid');
    
    build({
      entryPoints: ['app.jsx'],
      bundle: true,
      outfile: 'out.js',
      plugins: [solidPlugin()],
    }).catch(() => process.exit(1))

    Configuration

    There's no configuration as of now.

    How it works

    This is a 30 lines of code plugin. All it does is parse every import source code, check if JSX syntax is present using a dumb regex and transforming the file with @babel/core, @babel/preset-typescript and babel-preset-solid.

    Out of the box it checks every /(t|j)sx?/ files and only transforms the one with JSX syntax in it.

    Contributing

    This package uses pnpm so you might want to install it if you don't have it.

    Once done, you can just pnpm build & pnpm test to build & test your changes.

    pnpm test will build a dumb module with the plugin and open a local web server serving the tests folder for you to check if things still work.

    Install

    npm i esbuild-plugin-solid

    DownloadsWeekly Downloads

    98

    Version

    0.4.2

    License

    ISC

    Unpacked Size

    8.68 kB

    Total Files

    5

    Last publish

    Collaborators

    • amoutonbrady