ERR_REQUIRE_ESM when using @livestore/devtools-expo with Expo and monorepo #339
-
|
When using @livestore/devtools-expo in an Expo project within a monorepo setup, I encounter ERR_REQUIRE_ESM errors. This is because @livestore/devtools-expo/dist/metro-config.cjs attempts to require() ES modules like @livestore/utils/effect and @livestore/utils/node. Error Messages:
Environment:
Cause: Fix Applied (Workaround): Specifically, the following changes were made: // node_modules/@livestore/devtools-expo/dist/metro-config.cjs
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-// eslint-disable-next-line @typescript-eslint/no-require-imports, unicorn/prefer-module, @typescript-eslint/consistent-type-imports, prettier/prettier
-const { Effect, Logger, LogLevel } = require('@livestore/utils/effect');
// eslint-disable-next-line @typescript-eslint/no-require-imports, unicorn/prefer-module, @typescript-eslint/consistent-type-imports, prettier/prettier
const { PlatformNode } = require('@livestore/utils/node');
/**
* Patches the Metro config to add a middleware via `config.server.enhanceMiddleware`.
*/
-const addLiveStoreDevtoolsMiddleware = (config, options) => {
+const addLiveStoreDevtoolsMiddleware = async (config, options) => {
// NOTE in CI we want to skip this
if (process.env.CI || !process.stdout.isTTY) {
return;
}
+ // eslint-disable-next-line @typescript-eslint/no-require-imports, unicorn/prefer-module, @typescript-eslint/consistent-type-imports, prettier/prettier
+ const { Effect, Logger, LogLevel } = await import('@livestore/utils/effect');
+ // eslint-disable-next-line @typescript-eslint/no-require-imports, unicorn/prefer-module, @typescript-eslint/consistent-type-imports, prettier/prettier
+ const { PlatformNode } = await import('@livestore/utils/node'); // Changed to dynamic import
const host = options.host ?? '0.0.0.0'; // Defaulting to a hostname that can be reached from the device
const port = options.port ?? 4242;
// Needed for @livestore/adapter-expo
Additional Context (if applicable): Request: Thank you! |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
|
Can you please verify you're using Node.js 23 or newer? |
Beta Was this translation helpful? Give feedback.
Can you please verify you're using Node.js 23 or newer?