36 行
949 B
JavaScript
36 行
949 B
JavaScript
const { hasBuildInfo, writeBuildInfo, clean } = require('./build.js');
|
|
const {mergeConfig, getDefaultConfig} = require('@react-native/metro-config');
|
|
|
|
function createModuleIdFactory() {
|
|
const fileToIdMap = new Map();
|
|
let nextId = 0;
|
|
clean('./config/bundleCommonInfo.json');
|
|
|
|
// 如果是业务 模块请以 10000000 来自增命名
|
|
return (path) => {
|
|
let id = fileToIdMap.get(path);
|
|
|
|
if (typeof id !== 'number') {
|
|
id = nextId++;
|
|
fileToIdMap.set(path, id);
|
|
|
|
!hasBuildInfo('./config/bundleCommonInfo.json', path) &&
|
|
writeBuildInfo(
|
|
'./config/bundleCommonInfo.json',
|
|
path,
|
|
fileToIdMap.get(path)
|
|
);
|
|
}
|
|
|
|
return id;
|
|
};
|
|
}
|
|
|
|
const config = {
|
|
serializer: {
|
|
createModuleIdFactory: createModuleIdFactory, // 给 bundle 一个id 避免冲突 cli 源码中这个id 是从1 开始 自增的
|
|
},
|
|
};
|
|
|
|
module.exports = mergeConfig(getDefaultConfig(__dirname), config);
|