pmndrs / jotai

👻 Primitive and flexible state management for React
https://jotai.org
MIT License
18.25k stars 590 forks source link

Vite 5 / Rollup 4 build warning in v2.6.0 #2269

Open Kamahl19 opened 9 months ago

Kamahl19 commented 9 months ago

The combination of upgrading to Vite 5 (Rollup 4) and Jotai 2.6.0 results in an error during building

node_modules/jotai/esm/react.mjs (1:0) Error when using sourcemap for reporting an error: Can't resolve original location of error.

This error does not happen in 2.5.1 and also does not happen in Vite 4 + Jotai 2.6.0.

dai-shi commented 9 months ago

@himself65 Was rollup-plugin-banner2 too easy solution??

himself65 commented 9 months ago

@himself65 Was rollup-plugin-banner2 too easy solution??

Might be. I was worried about this before https://github.com/pmndrs/jotai/discussions/2241#discussioncomment-7514559

himself65 commented 9 months ago

Here is the minimum reproduction

https://stackblitz.com/edit/vitejs-vite-v2qh9v?file=src%2Fmain.ts

himself65 commented 9 months ago

@Kamahl19 Hi, would you try to use https://github.com/huozhi/rollup-plugin-swc-preserve-directives to see if the error disappear

Kamahl19 commented 9 months ago

I get even more errors. Maybe I misunderstood. Should I just add it to the vite plugin?

himself65 commented 9 months ago

I get even more errors. Maybe I misunderstood. Should I just add it to the vite plugin?

Could you please share you vite config?

himself65 commented 9 months ago

I just tried, and there's only one warning that won't cause building interrupt.

main.js → output...
(!) Module level directives cause errors when bundled, "use client" in "node_modules/.pnpm/jotai@2.6.0_react@18.2.0/node_modules/jotai/esm/react.mjs" was ignored.
node_modules/.pnpm/jotai@2.6.0_react@18.2.0/node_modules/jotai/esm/react.mjs (1:0)
1: 'use client';
   ^
2: import ReactExports, { createContext, useContext, useRef, createElement, useReducer, useEffect, useDebugValue, useCal...
3: import { getDefaultStore, createStore } from 'jotai/vanilla';
himself65 commented 9 months ago

Anyway, I'm working on a new implementation that won't cause this error

dai-shi commented 9 months ago

Can this be an upstream issue?

https://github.com/vitejs/vite/issues/15012

dai-shi commented 6 months ago

Any updates on this? Anyone?

himself65 commented 6 months ago

Error is still here

https://stackblitz.com/edit/vitejs-vite-v2qh9v

~/projects/vitejs-vite-v2qh9v 2s
❯ npm run build

> vite-typescript-starter@0.0.0 build
> tsc && vite build

vite v5.1.4 building for production...
node_modules/jotai/esm/react.mjs (1:0) Module level directives cause errors when bundled, "use client" in "node_modules/jotai/esm/react.mjs" was ignored.
✓ 12 modules transformed.
dist/index.html                0.38 kB │ gzip: 0.27 kB
dist/assets/index-Kr26tfIY.js  7.35 kB │ gzip: 3.07 kB
✓ built in 462ms
himself65 commented 6 months ago

Related https://github.com/vitejs/vite/issues/15012#issuecomment-1825035992

dai-shi commented 6 months ago

thanks. btw, it's not "error" that stops building, but just "warning", correct?

himself65 commented 6 months ago

oh yeah, a warning

drush commented 4 days ago

This plugin to remove all the 'use client' refs may do the trick https://stackoverflow.com/questions/78744180/vite-react-use-client-sourcemap-warning