Awesome
@sect/webpack-sweet-entry
Multiple entry points with glob pattern / Partial files with underscore / Preserve directory structure
Install
npm install --save-dev @sect/webpack-sweet-entry
Features
- Multiple entry points with glob pattern.
- Partial files (Files and Directories named with a leading underscore
_
is ignored.). - Preserve directory structure in
dist
directory.
Usage Example
const webpack = require('webpack');
const path = require('path');
const { WebpackSweetEntry } = require('@sect/webpack-sweet-entry');
const sourcePath = path.join(__dirname, 'src');
const buildPath = path.join(__dirname, 'dist');
module.exports = [
{
entry: WebpackSweetEntry(path.resolve(sourcePath, 'assets/js/**/*.js*'), 'js', 'js'),
output: {
path: path.resolve(buildPath, 'assets/js'),
filename: '[name].js',
},
module: {
...
}
},
{
entry: WebpackSweetEntry(path.resolve(sourcePath, 'assets/css/**/*.css'), 'css', 'css'),
output: {
path: path.resolve(buildPath, 'assets/css'),
filename: '[name].css',
},
module: {
...
}
}
];
Multiple(Mixed) extentions
module.exports = [
{
entry: WebpackSweetEntry(path.resolve(sourcePath, 'assets/scripts/**/*.*s*'), ['ts', 'js'], 'scripts'),
output: {
path: path.resolve(buildPath, 'assets/js'),
filename: '[name].js',
},
module: {
...
}
},
...
];
API
WebpackSweetEntry(path, ext, parentdir);
arg | type | Description | Example |
---|---|---|---|
path | string | string[] | File path glob(s) | path.resolve(sourcePath, 'assets/js/**/*.js*') or [path.resolve(sourcePath, 'assets/js/**/*.js*'), '!**/a.js'] |
ext | string | string[] | File extension | js or ['ts', 'js'] |
parentdir | string | Parent Dirctory Name for files (The directory name where the tree starts) | js |
Returns object
like the following.
{
a: '/path/to/your/src/assets/js/a.js',
b: '/path/to/your/src/assets/js/b.js',
'dir/e': '/path/to/your/src/assets/js/dir/e.js'
}
{
a: '/path/to/your/src/assets/css/a.css',
b: '/path/to/your/src/assets/css/b.css',
'dir/e': '/path/to/your/src/assets/css/dir/e.css'
}
Build Result
.
├── dist
│ └── assets
│ ├── css
│ │ ├── a.css
│ │ ├── b.css
│ │ └── dir
│ │ └── e.css
│ └── js
│ ├── a.js
│ ├── b.js
│ └── dir
│ └── e.js
├── src
│ └── assets
│ ├── css
│ │ ├── a.css
│ │ ├── b.css
│ │ ├── _c.css
│ │ ├── _d.css
│ │ └── dir
│ │ ├── e.css
│ │ └── _f.css
│ └── js
│ ├── a.js
│ ├── b.js
│ ├── _c.js
│ ├── _d.js
│ ├── _modules
│ │ ├── a.js
│ │ └── b.js
│ └── dir
│ ├── e.js
│ └── _f.js
├── package-lock.json
├── package.json
├── postcss.config.js
└── webpack.config.js
Migrate from v1
$ npm uninstall webpack-sweet-entry
$ npm install --save-dev @sect/webpack-sweet-entry
- const WebpackSweetEntry = require('webpack-sweet-entry');
+ const { WebpackSweetEntry } = require('@sect/webpack-sweet-entry');
Changelog
See CHANGELOG file.
<p align="center">✌️</p> <p align="center"> <sub><sup>A little project by <a href="https://github.com/sectsect">@sectsect</a></sup></sub> </p>