{"id":20778,"library":"webpack-import-glob","title":"webpack-import-glob","description":"Webpack preloader that expands glob patterns in ES6 import statements (and SCSS @import) into multiple explicit imports. Version 2.0.0 is stable, last updated 2018. Replaces the unmaintained import-glob package. Supports JS and SCSS files. Works as a preloader or chained loader. Differentiators: simple glob expansion, no code splitting. Alternatives like webpack-import-glob-loader are more modern but this remains functional for legacy webpack 2-3 projects.","status":"deprecated","version":"2.0.0","language":"javascript","source_language":"en","source_url":"https://github.com/brunoosilva/webpack-import-glob","tags":["javascript","webpack","loader","glob","es6"],"install":[{"cmd":"npm install webpack-import-glob","lang":"bash","label":"npm"},{"cmd":"yarn add webpack-import-glob","lang":"bash","label":"yarn"},{"cmd":"pnpm add webpack-import-glob","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core library for glob expansion; webpack-import-glob is a thin webpack wrapper","package":"import-glob","optional":false}],"imports":[{"note":"Glob import returns an array of modules as default export. Named imports won't work.","wrong":"import { modules } from './foo/**/*.js' (named import for glob results is not supported)","symbol":"default","correct":"import modules from './foo/**/*.js'"},{"note":"For side-effect imports, just the path without default or named import.","wrong":"import * from './foo/**/*.scss' (no need for namespace import for side-effects)","symbol":"side-effect import","correct":"import './foo/**/*.scss'"},{"note":"Loader must run before other loaders to expand globs. Use enforce: 'pre' or preloaders in webpack 2/3.","wrong":"{ test: /\\.js$/, use: 'import-glob' } (must be preloader/enforce:pre, not ordinary loader)","symbol":"webpack loader configuration","correct":"{ test: /\\.js$/, enforce: 'pre', loader: 'import-glob' }"}],"quickstart":{"code":"// Install: npm install --save-dev import-glob webpack-import-glob\n// webpack.config.js\nmodule.exports = {\n  module: {\n    rules: [\n      {\n        test: /\\.js$/,\n        enforce: 'pre',\n        loader: 'import-glob'\n      }\n    ]\n  }\n};\n// Then in any JS file:\nimport modules from './components/**/*.js'; // expands to multiple imports\nconsole.log(modules); // array of module exports","lang":"javascript","description":"Shows installation and webpack configuration to enable glob imports in JS files, with example usage."},"warnings":[{"fix":"Consider alternatives like webpack-import-glob-loader or use webpack's built-in resolve.alias with manual imports.","message":"Package is no longer maintained; last update 2018. May not work with webpack 4+.","severity":"deprecated","affected_versions":">=2.0.0"},{"fix":"Use enforce: 'pre' or preloaders (deprecated) in webpack config.","message":"Loader must be applied as a preloader (enforce: 'pre') otherwise it will break other loaders like babel.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use default import for aggregation, or side-effect imports for styles.","message":"Glob patterns only work for default imports or side-effect imports; named imports like import { foo } from './**/*.js' are not expanded.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Run: npm install import-glob --save-dev, not webpack-import-glob.","message":"The package is named webpack-import-glob but the actual loader name is import-glob. Installing import-glob as a dependency is mandatory.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Add enforce: 'pre' to the rule: { enforce: 'pre', test: /\\.js$/, loader: 'import-glob' }","cause":"Loader not configured as preloader; other loaders (e.g., babel) encounter glob syntax before expansion.","error":"Module parse failed: Unexpected token (1:0)"},{"fix":"npm install import-glob --save-dev","cause":"Did not install the underlying import-glob package.","error":"Cannot find module 'import-glob'"},{"fix":"Remove 'preloaders' and use 'rules' with enforce: 'pre'.","cause":"Webpack 1/2 deprecated preloaders; need to use enforce: 'pre' instead of preloaders array.","error":"Error: The type 'pre' in the array must be a string..."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}