Как использовать комплект rnx-kit с Nx ReactNative
У меня есть веб-приложение React и мобильное приложение ReactNative в монорепозитории Nx.
Мне нужно встряхивание деревьев в ReactNative, поэтому я пытаюсь использовать для этой цели rnx-kit, но не могу заставить его работать.
Как заставить rnx-kit работать с Nx ReactNative, чтобы добиться встряхивания дерева?
Ниже приведены фрагменты кода, которые я пытаюсь использовать.
Metro.config.js
const { withNxMetro } = require('@nx/react-native')
const { getDefaultConfig } = require('metro-config')
const exclusionList = require('metro-config/src/defaults/exclusionList')
const { makeMetroConfig } = require('@rnx-kit/metro-config')
const MetroSymlinksResolver = require('@rnx-kit/metro-resolver-symlinks')
module.exports = (async () => {
const {
resolver: { sourceExts, assetExts },
} = await getDefaultConfig()
const config = withNxMetro(
{
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: true,
},
}),
babelTransformerPath: require.resolve('react-native-svg-transformer'),
},
resolver: {
assetExts: assetExts.filter((ext) => ext !== 'svg'),
sourceExts: [...sourceExts, 'svg'],
blockList: exclusionList([/^(?!.*node_modules).*\/dist\/.*/]),
},
},
{
debug: false,
extensions: [],
projectRoot: __dirname,
watchFolders: [],
}
)
return makeMetroConfig({
...config,
resolver: {
...config.resolver,
resolveRequest: MetroSymlinksResolver(),
},
})
})()
и добавлен ниже конфигурации приложения rnx-kit в package.json рабочей области Nx.
{
...
"rnx-kit": {
"bundle": {
"entryFile": "./apps/my-app/src/main.tsx",
"targets": [
"ios", "android"
],
"treeShake": true
}
}
}
и я используюreact-native rnx-bundle
для объединения, но он не может найти мои импортированные библиотеки Nx, например
import { SomeFunction } from '@RNApp/components'