mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-27 06:03:51 +03:00
[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.
This commit is contained in:
parent
ea1a0ebbc3
commit
510cbe2c92
1 changed files with 8 additions and 0 deletions
|
@ -108,6 +108,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 a new issue