[CHORE] Don't bundle `elkjs`
- `elkjs` is a library that's imported by `mermaid`, although they have
seperated this package to it's own mermaid
package (https://github.com/mermaid-js/mermaid/pull/5654), the stable
version doesn't have this patch.
- `elkjs` is licensed under the EPL-2.0 license (copyleft), which isn't
compatible with GPL unless the license author explcitly allow this via a
so called "secondary license". At the end of the day it cannot be
released under a MIT or GPL license.
- Use webpack's `externals` option to avoid bundling `elkjs` and instead
leave it as a `require` code.
- This is a 'dirty' way to ensure elkjs isn't bundled and has to be
tested manually to ensure this for every release (via the
`webpack-bundle-analyzer` plugin). If someone tries to use the elkjs
render, it will result in a non-descriptive error being shown.
(cherry picked from commit 510cbe2c92
)
This commit is contained in:
parent
c8b6e07840
commit
e362e0813d
|
@ -73,6 +73,14 @@ const filterCssImport = (url, ...args) => {
|
||||||
|
|
||||||
/** @type {import("webpack").Configuration} */
|
/** @type {import("webpack").Configuration} */
|
||||||
export default {
|
export default {
|
||||||
|
externals: [
|
||||||
|
function ({request}, callback) {
|
||||||
|
if (/elkjs/.test(request)) {
|
||||||
|
return callback(null, `commonjs ${request}`);
|
||||||
|
}
|
||||||
|
callback();
|
||||||
|
},
|
||||||
|
],
|
||||||
mode: isProduction ? 'production' : 'development',
|
mode: isProduction ? 'production' : 'development',
|
||||||
entry: {
|
entry: {
|
||||||
index: [
|
index: [
|
||||||
|
|
Loading…
Reference in New Issue