Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Native Metro transformer crashes on Expo's @expo/log-box CSS modules with Specifier deserialization error

オープン
#293 コメント 0 件 リアクション 2 件 担当者 1 名 GitHub で見る

メンテナーはふだん 3 日以内に返信

@danstepanov がすでに取り組んでいます。

2026年7月15日 から。

評価

この issue はまだ評価されていません。

説明

v5 stability

Native Metro transformer crashes on Expo's @expo/log-box CSS modules with failed to deserialize; expected an object-like struct named Specifier

Summary

I hit a crash in react-native-css while following the Nativewind v5 setup on a fresh Expo 55 app.

The failure is triggered when Expo's own @expo/log-box CSS modules are sent through the native react-native-css Metro transformer. A direct compile of @expo/log-box/src/overlay/Overlay.module.css reproduces the same error outside Metro.

I do not think this is the same issue as CSS @property support. That appears to be covered separately by PR #284. This issue seems to be about react-native-css trying to compile framework-owned CSS that should be left to Expo's normal CSS handling.

Environment

  • expo: ~55.0.5
  • react-native: 0.83.2
  • nativewind: ^5.0.0-preview.2
  • react-native-css: ^3.0.4
  • package manager: bun
  • Node: v25.7.0

Minimal reproduction

Published repro repo:

Fast repro:

bun install
bun run repro:logbox

Current output:

Compiling node_modules/@expo/log-box/src/overlay/Overlay.module.css with react-native-css...
Error: failed to deserialize; expected an object-like struct named Specifier, found ()

The reproduction app itself uses the simple documented Nativewind Metro setup:

const { getDefaultConfig } = require("expo/metro-config");
const { withNativewind } = require("nativewind/metro");

module.exports = withNativewind(getDefaultConfig(__dirname));

Additional context

Expo's @expo/log-box package appears to own its CSS handling already:

  • it ships CSS modules under @expo/log-box/src/overlay/*.module.css
  • it has its own metro.config.js
  • it has a dedicated shadowDomCssTransformer.js

Because react-native-css replaces Metro's transformer globally, these Expo overlay files end up going through the native CSS compile path instead.

Expected behavior

react-native-css should not try to compile Expo log-box CSS modules with the native compiler on iOS/Android. Those files should be passed through Expo's default CSS handling so Nativewind can coexist with Expo's error overlay.

Actual behavior

The native CSS compiler crashes with:

Error: failed to deserialize; expected an object-like struct named Specifier, found ()

Proposed direction

A small Metro-level bypass for node_modules/@expo/log-box/**/*.css seems like the safest fix:

  • keep normal native compilation for app CSS and Nativewind input
  • skip native compilation for Expo's log-box CSS
  • delegate those files to the default Expo transformer

I have a local patch sketch for this if that direction sounds acceptable.

主要言語
TypeScript
スター
166
フォーク
45
平均マージ
13日 14時間
マージ済み PR(30日)
1

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

nativewind/react-native-css のほかの issue

nativewind/react-native-css の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。