Как использовать комплект 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'

0 ответов

Другие вопросы по тегам