ES6 import with glob patterns (preloader for Webpack)
(Forked from https://github.com/terpiljenya/import-glob)
Expands globbing patterns for ES6 import
statements.
import modules from "./foo/**/*.js";
Expands into
import * as module0 from "./foo/1.js";
import * as module1 from "./foo/bar/2.js";
import * as module2 from "./foo/bar/3.js";
var modules = [module0, module1, module2]
For importing from node module
import modules from "a-node-module/**/*js";
Expands into
import * as module0 from "a-node-module/foo/1.js";
import * as module1 from "a-node-module/foo/bar/2.js";
import * as module2 from "a-node-module/foo/bar/3.js";
var modules = [module0, module1, module2]
For side effects:
import "./foo/**/*.scss";
Expands into
import "./foo/1.scss";
import "./foo/bar/2.scss";
For sass:
@import "./foo/**/*.scss";
Expands into
@import "./foo/1.scss";
@import "./foo/bar/2.scss";
npm install webpack-import-glob-loader --save-dev
You can use it one of two ways, the recommended way is to use it as a preloader
// ./webpack.config.js
module.exports = {
...
module: {
rules: [
{
test: /\.js$/,
use: 'webpack-import-glob-loader'
},
{
test: /\.scss$/,
use: 'webpack-import-glob-loader'
},
]
}
};
Alternatively you can use it as a chained loader
// foo/bar.js
import "./**/*.js";
// index.js
import 'webpack-import-glob-loader!foo/bar.js';