Open Hao-yiwen opened 6 days ago
2.But common.json can't use in main.jsbundle.
Follow is my main.jsbundle metro.config.
const {hasBuildInfo, getCacheFile, isPwdFile} = require('./build');
const bundleBuInfo = require('./config/bundleBuInfo.json');
function postProcessModulesFilter(module) {
if (
module['path'].indexOf('__prelude__') >= 0 ||
module['path'].indexOf('polyfills') >= 0
) {
return false;
}
if (hasBuildInfo('/Users/yw.hao/Documents/rn/reactNative-study/splitRn_0736/config/bundleCommonInfo.json', module.path)) {
return false;
}
return true;
}
function createModuleIdFactory() {
const fileToIdMap = new Map();
let nextId = 10000000;
let isFirst = false;
return path => {
if (Boolean(getCacheFile('./config/bundleCommonInfo.json', path))) {
return getCacheFile('./config/bundleCommonInfo.json', path);
}
if (!isFirst && isPwdFile(path)) {
nextId = bundleBuInfo[isPwdFile(path)];
isFirst = true;
}
let id = fileToIdMap.get(path);
if (typeof id !== 'number') {
id = nextId++;
fileToIdMap.set(path, id);
}
return id;
};
}
const {getDefaultConfig, mergeConfig} = require('@react-native/metro-config');
const {
MetroSerializer,
esbuildTransformerConfig,
} = require('@rnx-kit/metro-serializer-esbuild');
/**
* Metro configuration
* https://facebook.github.io/metro/docs/configuration
*
* @type {import('metro-config').MetroConfig}
*/
const config = {
serializer: {
createModuleIdFactory: createModuleIdFactory,
processModuleFilter: postProcessModulesFilter,
customSerializer: MetroSerializer(),
},
transformer: esbuildTransformerConfig,
};
module.exports = mergeConfig(getDefaultConfig(__dirname), config);
I found processModuleFilter was override by ()=>true
.And because use customSerializer: MetroSerializer()
lead to module build don't use number id to identity module.
So @rnx-kit/metro-serializer-esbuild
can't be used in my Scenes? And only can be use in one bundle?
What happened?
issue example
https://github.com/Hao-yiwen/reactNative-study/tree/master/splitRn_0736
Affected Package
@rnx-kit/metro-serializer-esbuild
Version
0.1.35
Which platforms are you seeing this issue on?
System Information
Steps to Reproduce
Restoration steps
npm run build:common
to build common bundle.npm run build:index
to build main bundle.(main bundle use common mapping.json)Code of Conduct