callstack / repack

A Webpack-based toolkit to build your React Native application with full support of Webpack ecosystem.
https://re-pack.dev
MIT License
1.45k stars 104 forks source link

Flatlist TypeError: Cannot read property 'getItem' of undefined #729

Closed songdedku closed 4 days ago

songdedku commented 1 week ago

Describe the bug

Simulator Screenshot - iPhone 14 Pro Max - 2024-09-03 at 18 10 50

my webpack

import path from 'path'; import TerserPlugin from 'terser-webpack-plugin'; import * as Repack from '@callstack/repack';

export default env => { const { mode = 'development', context = Repack.getDirname(import.meta.url), entry = './index.js', platform = process.env.PLATFORM, minimize = mode === 'production', devServer = undefined, bundleFilename = undefined, sourceMapFilename = undefined, assetsPath = undefined, reactNativePath = new URL('./node_modules/react-native', import.meta.url) .pathname, } = env; const dirname = Repack.getDirname(import.meta.url);

if (!platform) { throw new Error('Missing platform'); }

process.env.BABEL_ENV = mode;

return { mode, devtool: false, context, entry: [ ...Repack.getInitializationEntries(reactNativePath, { hmr: devServer && devServer.hmr, }), entry, ], resolve: { ...Repack.getResolveOptions(platform), alias: { 'react-native': reactNativePath, }, }, output: { clean: true, hashFunction: 'xxhash64', path: path.join(dirname, 'build/generated', platform), filename: 'index.bundle', chunkFilename: '[name].chunk.bundle', publicPath: Repack.getPublicPath({platform, devServer}), }, optimization: { minimize, minimizer: [ new TerserPlugin({ test: /.(js)?bundle(\?.*)?$/i, extractComments: false, terserOptions: { format: { comments: false, }, }, }), ], chunkIds: 'named', }, module: { rules: [ { test: /.[cm]?[jt]sx?$/, include: [ // Include all node_modules except localforage /node_modules(?!\/localforage)/, ], use: 'babel-loader', type: 'javascript/dynamic', }, { test: /.[jt]sx?$/, exclude: /node_modules/, use: { loader: 'babel-loader', options: { plugins: devServer && devServer.hmr ? ['module:react-refresh/babel'] : undefined, }, }, }, { test: /.(ts|tsx)$/, use: [ { loader: 'ts-loader', options: { transpileOnly: true, }, }, ], type: 'javascript/dynamic', }, { test: /.(js|jsx)$/, // Matches .js and .jsx files exclude: /node_modules/, use: { loader: 'babel-loader', options: { presets: ['@babel/preset-env', '@babel/preset-react'], plugins: ['@babel/plugin-transform-runtime'], }, }, type: 'javascript/dynamic', }, { test: /.lottie$/, type: 'asset/resource', }, { test: /.svg$/, use: [ { loader: 'babel-loader', }, { loader: 'react-native-svg-loader', }, ], }, { test: Repack.getAssetExtensionsRegExp( Repack.ASSET_EXTENSIONS.filter(ext => ext !== 'svg'), ), use: { loader: '@callstack/repack/assets-loader', options: { platform, devServerEnabled: Boolean(devServer), scalableAssetExtensions: Repack.SCALABLE_ASSETS, }, }, }, ], }, plugins: [ new Repack.RepackPlugin({ context, mode, platform, devServer, output: { bundleFilename, sourceMapFilename, assetsPath, }, }),

  new Repack.plugins.ModuleFederationPlugin({
    name: 'host',
    exposes: {
      './Text': './src/components/atoms/Text.tsx',
    },
    shared: {
      react: {
        ...Repack.Federated.SHARED_REACT,
        requiredVersion: '18.2.0',
      },
      'react-native': {
        ...Repack.Federated.SHARED_REACT_NATIVE,
        requiredVersion: '0.72.4',
      },
      'react-native-tab-view': {
        singleton: true,
        eager: true,
        requiredVersion: '3.5.2',
      },
    },
  }),
],

}; };

System Info

System:
  OS: macOS 14.2
  CPU: (8) arm64 Apple M3
  Memory: 629.53 MB / 16.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 20.11.1
    path: /usr/local/bin/node
  Yarn:
    version: 1.22.22
    path: ~/xxx/xxx/app/xxx/node_modules/.bin/yarn
  npm:
    version: 10.2.4
    path: /usr/local/bin/npm
  Watchman:
    version: 2024.07.08.00
    path: /opt/homebrew/bin/watchman
Managers:
  CocoaPods:
    version: 1.15.2
    path: /opt/homebrew/bin/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 23.0
      - iOS 17.0
      - macOS 14.0
      - tvOS 17.0
      - watchOS 10.0
  Android SDK: Not Found
IDEs:
  Android Studio: 2023.2 AI-232.10227.8.2321.11479570
  Xcode:
    version: 15.0/15A5160n
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 11.0.23
    path: /opt/homebrew/opt/openjdk@11/bin/javac
  Ruby:
    version: 2.6.10
    path: /usr/bin/ruby
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.2.0
    wanted: 18.2.0
  react-native:
    installed: 0.72.4
    wanted: 0.72.4
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: false
iOS:
  hermesEnabled: true
  newArchEnabled: false

Re.Pack Version

4.2.0

Reproduction

xxx

Steps to reproduce

error when i use Flatlist

jbroma commented 1 week ago

Hi @songdedku,

from my point of view this doesn't point to any faulty logic in Re.Pack. You will need to provide a reproduction repository if you think the problem lies with Re.Pack.

Please note that you are also using react-native@0.72 which is no longer supported by Re.Pack. You can try updating to the newest version to see if the problem resolves itself.