1234567891011121314151617181920212223242526272829303132333435 |
- 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);
|