Skip to content

Commit

Permalink
fix: Fix sourceMap source file does not exist. #325
Browse files Browse the repository at this point in the history
  • Loading branch information
jaywcjlove committed Jan 1, 2022
1 parent d4f1acf commit 023bd62
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 17 deletions.
6 changes: 3 additions & 3 deletions core/src/overrides/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ import { KKTRC, loaderConf } from '../utils/loaderConf';
// before overrides scripts are read
require(`${reactScripts}/config/env`);

export default async (): Promise<KKTRC> => {
return loaderConf(configOverrides);
};
export default async function config(): Promise<KKTRC> {
return await loaderConf(configOverrides);
}
25 changes: 25 additions & 0 deletions core/src/plugins/loadSourceMapWarnning.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import FS from 'fs-extra';
import { Configuration } from 'webpack';
import { LoaderConfOptions } from '../utils/loaderConf';

export function loadSourceMapWarnning(
conf: Configuration,
env: 'development' | 'production',
options: LoaderConfOptions,
) {
if (conf.module && conf.module.rules && conf.module.rules[0]) {
const rules = conf.module.rules[0];
if (typeof rules === 'object' && typeof rules.loader === 'string' && /source-map-loader/.test(rules.loader)) {
// ;(conf.module.rules[0] as any).exclude = /((@babel(?:\/|\\{1,2})runtime)|codesandbox-import-utils)/;
(conf.module.rules[0] as any).options = {
filterSourceMappingUrl: (url: string, resourcePath: string) => {
if (/\.(js|jsx|ts|tsx)$/.test(resourcePath) && !FS.existsSync(resourcePath)) {
return 'skip';
}
return true;
},
};
}
}
return conf;
}
11 changes: 7 additions & 4 deletions core/src/scripts/build.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { reactScripts, isWebpackFactory } from '../utils/path';
import { overridePaths } from '../overrides/paths';
import { miniCssExtractPlugin } from '../utils/miniCssExtractPlugin';
import { checkRequiredFiles } from '../overrides/checkRequired';
import { loadSourceMapWarnning } from '../plugins/loadSourceMapWarnning';
import { BuildArgs } from '..';

export default async function build(argvs: BuildArgs) {
Expand All @@ -21,14 +22,16 @@ export default async function build(argvs: BuildArgs) {
if (overridesHandle && typeof overridesHandle === 'function') {
// Source maps are resource heavy and can cause out of memory issue for large source files.
const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== 'false';
const defaultWepack = miniCssExtractPlugin(createWebpackConfig('production'));
const webpackConf = argvs.overridesWebpack ? argvs.overridesWebpack(defaultWepack) : defaultWepack;
const overrideWebpackConf = await overridesHandle(webpackConf, 'production', {
const overrideOption = {
...argvs,
shouldUseSourceMap,
paths,
kktrc,
});
};
const defaultWepack = miniCssExtractPlugin(createWebpackConfig('production'));
const webpackConf = argvs.overridesWebpack ? argvs.overridesWebpack(defaultWepack) : defaultWepack;
const overrideWebpackConf = await overridesHandle(webpackConf, 'production', overrideOption);
loadSourceMapWarnning(overrideWebpackConf, 'development', overrideOption);
// override config in memory
require.cache[require.resolve(webpackConfigPath)].exports = (env: string) => overrideWebpackConf;
}
Expand Down
21 changes: 11 additions & 10 deletions core/src/scripts/start.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import { overridesChoosePort } from '../overrides/choosePort';
import { miniCssExtractPlugin } from '../utils/miniCssExtractPlugin';
import { cacheData } from '../utils/cacheData';
import { checkRequiredFiles } from '../overrides/checkRequired';
import { loadSourceMapWarnning } from '../plugins/loadSourceMapWarnning';
import { StartArgs } from '..';

export default async function start(argvs: StartArgs) {
Expand Down Expand Up @@ -44,16 +45,17 @@ export default async function start(argvs: StartArgs) {
if (kktrc && kktrc.proxySetup && typeof kktrc.proxySetup === 'function') {
cacheData({ proxySetup: kktrc.proxySetup });
}
const overrideOption = {
...argvs,
devServerConfigHandle: createDevServerConfig,
shouldUseSourceMap,
paths,
kktrc,
};
const overrideWebpackConf = await overridesHandle(
argvs.overridesWebpack ? argvs.overridesWebpack(webpackConf) : webpackConf,
'development',
{
...argvs,
devServerConfigHandle: createDevServerConfig,
shouldUseSourceMap,
paths,
kktrc,
},
overrideOption,
);
if (overrideWebpackConf.devServer) {
/**
Expand All @@ -67,10 +69,9 @@ export default async function start(argvs: StartArgs) {
);
delete overrideWebpackConf.devServer;
}
loadSourceMapWarnning(overrideWebpackConf, 'development', overrideOption);
// override config in memory
require.cache[require.resolve(webpackConfigPath)].exports = (env: string) => {
return overrideWebpackConf;
};
require.cache[require.resolve(webpackConfigPath)].exports = (env: string) => overrideWebpackConf;
}
// override config in memory
require.cache[require.resolve(devServerConfigPath)].exports = (
Expand Down

0 comments on commit 023bd62

Please sign in to comment.