Skip to content

dalcib/esbuild-plugin-cache

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3f3bccf · Nov 23, 2022

History

32 Commits
Dec 7, 2020
Jul 11, 2021
May 21, 2021
May 2, 2021
Jun 10, 2021
Dec 6, 2020
Jul 20, 2022
Jun 10, 2021
Jun 10, 2021
Jun 10, 2021
Jun 10, 2021
Nov 23, 2022
Nov 23, 2022
Jun 10, 2021

Repository files navigation

esbuild-plugin-cache

Esbuid plugin to cache http/https imports.

The plugin allows to use http/https imports without installing npm packages on node_modules.

It also allows to use import-maps .

It can provide a feature similar to Snowpack 3.0, the new Streaming NPM Imports, which allows to skip the NPM install and node_modules.

//index.js
import React from 'https://cdn.skypack.dev/react@17.0.1'
console.log(React.version)

Build script:

//build.js
import esbuild from 'esbuild'
import { cache } from 'esbuild-plugin-cache'

esbuild
  .build({
    entryPoints: ['index.js'],
    bundle: true,
    outfile: 'bundle.js',
    plugins: [cache()],
  })
  .catch(() => process.exit(1))

Config:

config: {importmap: {imports:{[key: string]: string}}, directory: string}

  • importmap: Import-map object. Default: {}

  • directory: Path or name for the directory of the cache. Default to Deno cache directory. Optionally the cache directory can be defined with DENO_DIR env variable: process.env.DENO_DIR = 'cache'.

Using with importmap

//index.js
import React from 'react'
console.log(React.version)
//build.js
import esbuild from 'esbuild'
import { cache } from 'esbuild-plugin-cache'

const importmap = {
  imports: {
    react: 'https://cdn.skypack.dev/react@17.0.1',
  },
}

esbuild
  .build({
    entryPoints: ['index.js'],
    bundle: true,
    outfile: 'bundle.js',
    plugins: [cache({ importmap, directory: './cache' })],
  })
  .catch(() => process.exit(1))