From 7da21562370b6f741f62d08a0f31fdf289999463 Mon Sep 17 00:00:00 2001 From: Huan Wang Date: Tue, 15 Oct 2019 08:03:35 -0600 Subject: [PATCH] grafana/toolkit: Add font file loader (#19781) * add file loader for fonts * Add public path to resolve fonts correctly * Do not specify font's output path * Output fonts to fonts directory --- .../grafana-toolkit/src/config/utils/getPluginId.ts | 11 +++++++++++ .../grafana-toolkit/src/config/webpack/loaders.ts | 10 ++++++++++ 2 files changed, 21 insertions(+) create mode 100644 packages/grafana-toolkit/src/config/utils/getPluginId.ts diff --git a/packages/grafana-toolkit/src/config/utils/getPluginId.ts b/packages/grafana-toolkit/src/config/utils/getPluginId.ts new file mode 100644 index 00000000000..5acf8090688 --- /dev/null +++ b/packages/grafana-toolkit/src/config/utils/getPluginId.ts @@ -0,0 +1,11 @@ +import path from 'path'; + +let PLUGIN_ID: string; + +export const getPluginId = () => { + if (!PLUGIN_ID) { + const pluginJson = require(path.resolve(process.cwd(), 'src/plugin.json')); + PLUGIN_ID = pluginJson.id; + } + return PLUGIN_ID; +}; diff --git a/packages/grafana-toolkit/src/config/webpack/loaders.ts b/packages/grafana-toolkit/src/config/webpack/loaders.ts index 32e44ba10e4..85c030edac6 100644 --- a/packages/grafana-toolkit/src/config/webpack/loaders.ts +++ b/packages/grafana-toolkit/src/config/webpack/loaders.ts @@ -1,5 +1,6 @@ import fs from 'fs'; import path from 'path'; +import { getPluginId } from '../utils/getPluginId'; const MiniCssExtractPlugin = require('mini-css-extract-plugin'); @@ -139,5 +140,14 @@ export const getFileLoaders = () => { }, ], }, + { + test: /\.(woff|woff2|eot|ttf|otf)(\?v=\d+\.\d+\.\d+)?$/, + loader: 'file-loader', + options: { + publicPath: `/public/plugins/${getPluginId()}/fonts`, + outputPath: 'fonts', + name: '[name].[ext]', + }, + }, ]; };