0.57.1-beta • Published 3 years ago

metro-config-merge v0.57.1-beta

Weekly downloads
6
License
ISC
Repository
-
Last release
3 years ago

58不支持npm发布测试包

  npm publish --tag beta --registry https://registry.npmjs.org

中台维护生成 示例

  // 中台生成 common.path.ios.json common.path.android.json
  "build:ios:json": "react-native bundle --platform ios --entry-file ./App/index.js --bundle-output common.path.ios.json --dev false",
  "build:android:json": "react-native bundle --platform android --entry-file ./App/index.js --bundle-output common.path.android.json --dev false",

  // 中台生成 common.ios.bundle common.android.bundle 内置所有App
  "build:ios:common": "react-native bundle --platform ios --entry-file ./App/index.js --bundle-output common.ios.bundle --dev false",
  "build:android:common": "react-native bundle --platform android --entry-file ./App/index.js --bundle-output common.android.bundle --dev false",

  // 热更新平台 构建执行脚本 - 项目
  "build:ios:busine": "react-native bundle --platform ios --entry-file ./App/index.js --bundle-output buz.ios.bundle --dev false",
  "build:android:busine": "react-native bundle --platform android --entry-file ./App/index.js --bundle-output buz.android.bundle --dev false",

  // 热更新平台 构建执行脚本 - 组件
  "build:ios:requireEnsure": "react-native bundle --platform ios --entry-file ./App/ASD.js --bundle-output __requireEnsure__.ios.bundle --dev false",
  "build:android:requireEnsure": "react-native bundle --platform android --entry-file ./App/ASD.js --bundle-output __requireEnsure__.android.bundle --dev false",

版本维护说明

  // RN升级 导致预设升级 请务必更改大版本 以防止业务线^自动升级导致的不兼容
  RN57 "0.57.x",
  RN64 "1.64.x",
  // package.json
  "peerDependencies": {
    "react-native": "0.57.8",
    "metro-config": ">=0.48.0"
  }

使用示例

  // 下载符合RN版本对应版本的 metro-config-merge
  
  // package.json
  "platformMergeMetroConfig": true,
  "dev": "npm start",
  "start": "cross-env NODE_ENV=development react-native start",

  // metro.config.js
  const { essentialMerge } = require('metro-config-merge')
  // essentialMerge 会做基本的校验 但仍需在热更新平台打包预览后 才能确定合并是否真的没有问题
  module.export = process.env.NODE_ENV === 'development' busine : essentialMerge(busine)

注意问题

  • RN57版本通过 package.json platformMergeMetroConfig 字段区分是否启用 RN64版本默认开启
  • 该Merge应该仅用于热更新平台 而非本地调试