You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.1 KiB
43 lines
1.1 KiB
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(); |
|
}, |
|
];
|
|
|