* Use grafana toolkit template for building plugin * Fix linter and type errors * Update styles building * Fix sass deprecation warning * Remove empty js files produced by webpack building sass * Fix signing script * Replace classnames with cx * Fix data source config page * Use custom webpack config instead of overriding original one * Use gpx_ prefix for plugin executable * Remove unused configs * Roll back react hooks dependencies usage * Move plugin-specific ts config to root config file * Temporary do not use rst2html for function description tooltip * Remove unused code * remove unused dependencies * update react table dependency * Migrate tests to typescript * remove unused dependencies * Remove old webpack configs * Add sign target to makefile * Add magefile * Update CI test job * Update go packages * Update build instructions * Downgrade go version to 1.18 * Fix go version in ci * Fix metric picker * Add comment to webpack config * remove angular mocks * update bra config * Rename datasource-zabbix to datasource (fix mage build) * Add instructions for building backend with mage * Fix webpack targets * Fix ci backend tests * Add initial e2e tests * Fix e2e ci tests * Update docker compose for cypress tests * build grafana docker image * Fix docker stop task * CI: add Grafana compatibility check
69 lines
1.8 KiB
TypeScript
69 lines
1.8 KiB
TypeScript
import type { Configuration } from 'webpack';
|
|
import { merge } from 'webpack-merge';
|
|
import grafanaConfig from './.config/webpack/webpack.config';
|
|
import MiniCssExtractPlugin from 'mini-css-extract-plugin';
|
|
import RemoveEmptyScriptsPlugin from 'webpack-remove-empty-scripts';
|
|
|
|
const config = async (env): Promise<Configuration> => {
|
|
const baseConfig = await grafanaConfig(env);
|
|
|
|
return merge(baseConfig, {
|
|
// Add custom config here...
|
|
entry: {
|
|
module: './module.ts',
|
|
'datasource/module': './datasource/module.ts',
|
|
'panel-triggers/module': './panel-triggers/module.tsx',
|
|
dark: './styles/dark.scss',
|
|
light: './styles/light.scss',
|
|
},
|
|
|
|
module: {
|
|
rules: [
|
|
{
|
|
test: /(dark|light)\.scss$/,
|
|
exclude: /node_modules/,
|
|
use: [
|
|
MiniCssExtractPlugin.loader,
|
|
{
|
|
loader: 'css-loader',
|
|
options: {
|
|
importLoaders: 1,
|
|
url: false,
|
|
sourceMap: false,
|
|
},
|
|
},
|
|
{
|
|
loader: require.resolve('postcss-loader'),
|
|
options: {
|
|
postcssOptions: {
|
|
plugins: () => [
|
|
require('postcss-flexbugs-fixes'),
|
|
require('postcss-preset-env')({
|
|
autoprefixer: { flexbox: 'no-2009', grid: true },
|
|
}),
|
|
],
|
|
},
|
|
},
|
|
},
|
|
{
|
|
loader: 'sass-loader',
|
|
options: {
|
|
sourceMap: false,
|
|
},
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
|
|
plugins: [
|
|
new RemoveEmptyScriptsPlugin({}),
|
|
new MiniCssExtractPlugin({
|
|
filename: 'styles/[name].css',
|
|
}),
|
|
],
|
|
});
|
|
};
|
|
|
|
export default config;
|