44 lines
1.1 KiB
TypeScript
44 lines
1.1 KiB
TypeScript
import type { Configuration, ExternalItemFunctionData } from 'webpack';
|
|
|
|
type ExternalsType = Configuration['externals'];
|
|
|
|
export const externals: ExternalsType = [
|
|
// Required for dynamic publicPath resolution
|
|
{ 'amd-module': 'module' },
|
|
'lodash',
|
|
'jquery',
|
|
'moment',
|
|
'slate',
|
|
'emotion',
|
|
'@emotion/react',
|
|
'@emotion/css',
|
|
'prismjs',
|
|
'slate-plain-serializer',
|
|
'@grafana/slate-react',
|
|
'react',
|
|
'react-dom',
|
|
'react-redux',
|
|
'redux',
|
|
'rxjs',
|
|
'i18next',
|
|
'react-router',
|
|
'd3',
|
|
'angular',
|
|
/^@grafana\/ui/i,
|
|
/^@grafana\/runtime/i,
|
|
/^@grafana\/data/i,
|
|
|
|
// Mark legacy SDK imports as external if their name starts with the "grafana/" prefix
|
|
({ request }: ExternalItemFunctionData, callback: (error?: Error, result?: string) => void) => {
|
|
const prefix = 'grafana/';
|
|
const hasPrefix = (request: string) => request.indexOf(prefix) === 0;
|
|
const stripPrefix = (request: string) => request.slice(prefix.length);
|
|
|
|
if (request && hasPrefix(request)) {
|
|
return callback(undefined, stripPrefix(request));
|
|
}
|
|
|
|
callback();
|
|
},
|
|
];
|