{"id":21255,"library":"esbuild-plugin-import-pattern","title":"esbuild-plugin-import-pattern","description":"An esbuild plugin for importing modules using wildcard patterns (e.g. './files/*.js'). Current stable version is 0.1.0. It improves upon esbuild-plugin-import-glob by providing a simpler API and support for named import selection via hash syntax. The plugin integrates with esbuild's build process and is published on npm as a development dependency. Released under the MIT license, it is designed for Node.js environments and requires esbuild as a peer dependency.","status":"active","version":"0.1.0","language":"javascript","source_language":"en","source_url":"https://github.com/timdp/esbuild-plugin-import-pattern","tags":["javascript"],"install":[{"cmd":"npm install esbuild-plugin-import-pattern","lang":"bash","label":"npm"},{"cmd":"yarn add esbuild-plugin-import-pattern","lang":"bash","label":"yarn"},{"cmd":"pnpm add esbuild-plugin-import-pattern","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"The package exports a named function, not a default export.","wrong":"const importPatternPlugin = require('esbuild-plugin-import-pattern')","symbol":"importPatternPlugin","correct":"const { importPatternPlugin } = require('esbuild-plugin-import-pattern')"},{"note":"The hash syntax is for selecting named exports; entries (array of [path, exports] tuples) is the default export from the wildcard module.","wrong":"import { entries } from './files/*.js#default'","symbol":"entries","correct":"import { entries } from './files/*.js'"},{"note":"modules gives an array of export objects without paths.","wrong":"import { modules } from './files/*.js#default'","symbol":"modules","correct":"import { modules } from './files/*.js'"}],"quickstart":{"code":"npm install esbuild-plugin-import-pattern --save-dev\n\nconst esbuild = require('esbuild');\nconst { importPatternPlugin } = require('esbuild-plugin-import-pattern');\n\nesbuild.build({\n  entryPoints: ['src/index.js'],\n  bundle: true,\n  outfile: 'dist/bundle.js',\n  plugins: [importPatternPlugin()],\n}).then(() => {\n  console.log('Build succeeded');\n}).catch((err) => {\n  console.error(err);\n  process.exit(1);\n});","lang":"javascript","description":"Install the plugin and configure esbuild with it. The plugin is applied as a plugin during build, allowing wildcard imports in source files. The build script demonstrates bundling with the plugin enabled."},"warnings":[{"fix":"Ensure pattern includes a '*', e.g., './files/*.js'.","message":"Wildcard patterns must contain at least one '*' character.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Use named imports: import { entries } from './files/*.js'.","message":"Default import from a wildcard module is not exported. You must use named imports like { entries }, { modules }, or { paths }.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Use hash syntax (e.g., '#default') if all exports share the same named exports to avoid unnecessary code.","message":"When using wildcard pattern with hash syntax for named exports, esbuild may still include unused exports. The hash only reduces bundling overhead but does not tree-shake unused exports.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Use: import { entries as cats } from './cats/*.js' and import { entries as dogs } from './dogs/*.js'.","message":"If multiple wildcard imports exist in the same file, they must be renamed using 'as' keyword.","severity":"gotcha","affected_versions":">=0.1.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Run 'npm install esbuild-plugin-import-pattern --save-dev' and import as 'const { importPatternPlugin } = require(\"esbuild-plugin-import-pattern\")'.","cause":"The plugin is not installed or not imported correctly.","error":"Error: The plugin \"esbuild-plugin-import-pattern\" is not found."},{"fix":"Change the import path to include '*', e.g., './files/*.js'.","cause":"The import pattern does not include a wildcard character.","error":"Error: Wildcard pattern must contain at least one '*'"},{"fix":"Use destructuring: const { importPatternPlugin } = require('esbuild-plugin-import-pattern') (not require('esbuild-plugin-import-pattern').default or direct assignment).","cause":"The require or import incorrectly assigned the module.","error":"TypeError: importPatternPlugin is not a function"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}