https://github.com/shlomiassaf/webpack-dll-bundles-plugin
A Webpack plugin for bundling group of packages as DLLs
https://github.com/shlomiassaf/webpack-dll-bundles-plugin
Last synced: 2 months ago
JSON representation
A Webpack plugin for bundling group of packages as DLLs
- Host: GitHub
- URL: https://github.com/shlomiassaf/webpack-dll-bundles-plugin
- Owner: shlomiassaf
- License: mit
- Created: 2017-01-09T16:48:03.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2020-11-27T21:48:14.000Z (almost 5 years ago)
- Last Synced: 2025-05-22T03:08:43.652Z (5 months ago)
- Language: TypeScript
- Size: 15.6 KB
- Stars: 55
- Watchers: 4
- Forks: 12
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Webpack Dll Bundle plugin
A Plugin for Webpack that uses Webpack's `DllPlugin` & `DllReferencePlugin` to create bundle configurations as part of the build process.
The plugin will monitor for changes in packages and rebuild the bundles accordingly.
## Example:```
const webpackMerge = require('webpack-merge'); // used to merge webpack configs
const commonConfig = require('./webpack.common.js'); // the settings that are commonnew DllBundlesPlugin({
bundles: {
polyfills: [
'core-js',
'zone.js',
],
vendor: [
'@angular/platform-browser',
'@angular/platform-browser-dynamic',
'@angular/core',
'@angular/common',
'@angular/forms',
'@angular/http',
'@angular/router',
'@angularclass/hmr',
'rxjs',
]
},
dllDir: './dll',
webpackConfig: webpackMerge(commonConfig({env: ENV}), {
devtool: 'cheap-module-source-map',
plugins: [] // DllBundlesPlugin will set the DllPlugin here
})
})
```> **webpackConfig** Accepts a path (string), webpack config object or webpack config object factory.
`DllBundlesPlugin` will override the entry and add the DllPlugins requires.
`DllBundlesPlugin` will also add the `DllReferencePlugin` to the webpack configuration it is defined on.## Referencing Dll files
Currently, the file name templates for dll's is locked, you can get a projected file name for a dll using the `resolveFile` function.```
new AddAssetHtmlPlugin([
{ filepath: helpers.root(`dll/${DllBundlesPlugin.resolveFile('polyfills')}`) },
{ filepath: helpers.root(`dll/${DllBundlesPlugin.resolveFile('vendor')}`) }
])
```## TODO
- Watch files/package.json for changes and rebuild
- Move package resolution to webpack (now using node require)
- Allow setting the template for file names.
- Documentation