12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- const path = require('path');
- const resolvedLoader = require.resolve('../../loader');
- const reactRefreshPath = path.dirname(require.resolve('react-refresh'));
- const refreshUtilsPath = path.join(__dirname, '../runtime/RefreshUtils');
- function injectRefreshLoader(moduleData, injectOptions) {
- const { match, options } = injectOptions;
-
- if (!match(moduleData.matchResource || moduleData.resource)) return moduleData;
-
- if (moduleData.matchResource && !match(moduleData.request)) return moduleData;
-
- if (moduleData.type.includes('asset')) return moduleData;
-
- if (moduleData.loaders.find(({ loader }) => loader === resolvedLoader)) return moduleData;
-
-
-
- if (
- moduleData.resource.includes(reactRefreshPath) ||
- moduleData.resource.includes(refreshUtilsPath)
- ) {
- return moduleData;
- }
-
-
-
-
- moduleData.loaders.unshift({
- loader: resolvedLoader,
- options,
- });
- return moduleData;
- }
- module.exports = injectRefreshLoader;
|