From 6e391728febc7a9f2ffbd984a26c232d8577f705 Mon Sep 17 00:00:00 2001 From: Aakansha Doshi Date: Wed, 8 Dec 2021 15:56:25 +0530 Subject: [PATCH] build: remove file loader and migrate to asset modules webpack for font assets (#4380) * build: use type:javascript/auto so font file assets aren't duplicated * update changelog * remove file loader and use asset modules * fix --- src/packages/excalidraw/CHANGELOG.md | 6 ++---- src/packages/excalidraw/package.json | 1 - src/packages/excalidraw/webpack.dev.config.js | 12 +++--------- .../excalidraw/webpack.prod.config.js | 11 ++--------- src/packages/excalidraw/yarn.lock | 19 +------------------ 5 files changed, 8 insertions(+), 41 deletions(-) diff --git a/src/packages/excalidraw/CHANGELOG.md b/src/packages/excalidraw/CHANGELOG.md index 607396c8..f6ccd242 100644 --- a/src/packages/excalidraw/CHANGELOG.md +++ b/src/packages/excalidraw/CHANGELOG.md @@ -52,10 +52,6 @@ Please add the latest change on the top under the correct section. - `.excalidraw` files may now contain top-level `files` key in format of `Record` when exporting any (image) elements. - Changes were made to various export utilityies exported from the package so that they take `files`. For now, TypeScript should help you figure the changes out. -## Excalidraw API - -### Features - - Export [`isLinearElement`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#isLinearElement) and [`getNonDeletedElements`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#getNonDeletedElements). - Support [`renderTopRightUI`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#renderTopRightUI) in mobile UI. @@ -68,6 +64,8 @@ Please add the latest change on the top under the correct section. ### Build +- Remove `file-loader` so font assets are not duplicated by webpack and use webpack asset modules for font generation [#4380](https://github.com/excalidraw/excalidraw/pull/4380) + - We're now compiling to `es2017` target. Notably, `async/await` is not compiled down to generators. [#4341](https://github.com/excalidraw/excalidraw/pull/4341) --- diff --git a/src/packages/excalidraw/package.json b/src/packages/excalidraw/package.json index 1e7fcc2a..d5a7ce26 100644 --- a/src/packages/excalidraw/package.json +++ b/src/packages/excalidraw/package.json @@ -57,7 +57,6 @@ "babel-plugin-transform-class-properties": "6.24.1", "cross-env": "7.0.3", "css-loader": "6.5.1", - "file-loader": "6.2.0", "mini-css-extract-plugin": "2.4.5", "postcss-loader": "6.2.1", "sass-loader": "12.3.0", diff --git a/src/packages/excalidraw/webpack.dev.config.js b/src/packages/excalidraw/webpack.dev.config.js index e66207f2..68566190 100644 --- a/src/packages/excalidraw/webpack.dev.config.js +++ b/src/packages/excalidraw/webpack.dev.config.js @@ -15,6 +15,8 @@ module.exports = { libraryTarget: "umd", filename: "[name].js", chunkFilename: "excalidraw-assets-dev/[name]-[contenthash].js", + assetModuleFilename: "excalidraw-assets-dev/[name][ext]", + publicPath: "", }, resolve: { @@ -54,15 +56,7 @@ module.exports = { }, { test: /\.(woff|woff2|eot|ttf|otf)$/, - use: [ - { - loader: "file-loader", - options: { - name: "[name].[ext]", - outputPath: "excalidraw-assets-dev", - }, - }, - ], + type: "asset/resource", }, ], }, diff --git a/src/packages/excalidraw/webpack.prod.config.js b/src/packages/excalidraw/webpack.prod.config.js index ffe99f2f..92ab36f4 100644 --- a/src/packages/excalidraw/webpack.prod.config.js +++ b/src/packages/excalidraw/webpack.prod.config.js @@ -17,6 +17,7 @@ module.exports = { libraryTarget: "umd", filename: "[name].js", chunkFilename: "excalidraw-assets/[name]-[contenthash].js", + assetModuleFilename: "excalidraw-assets/[name][ext]", publicPath: "", }, resolve: { @@ -72,15 +73,7 @@ module.exports = { }, { test: /\.(woff|woff2|eot|ttf|otf)$/, - use: [ - { - loader: "file-loader", - options: { - name: "[name].[ext]", - outputPath: "excalidraw-assets", - }, - }, - ], + type: "asset/resource", }, ], }, diff --git a/src/packages/excalidraw/yarn.lock b/src/packages/excalidraw/yarn.lock index 57ad6156..32db915d 100644 --- a/src/packages/excalidraw/yarn.lock +++ b/src/packages/excalidraw/yarn.lock @@ -1759,14 +1759,6 @@ fastest-levenshtein@^1.0.12: resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== -file-loader@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" - integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -2050,15 +2042,6 @@ loader-utils@^1.4.0: emojis-list "^3.0.0" json5 "^1.0.1" -loader-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" - integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -2471,7 +2454,7 @@ schema-utils@^2.6.5: ajv "^6.12.4" ajv-keywords "^3.5.2" -schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1: +schema-utils@^3.1.0, schema-utils@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==