blocklet / zero-demo

Demo Blocklet powered by Zeroserver
0 stars 0 forks source link

Error: Minified React error #321; #4

Open mave99a opened 3 years ago

mave99a commented 3 years ago

Hit this error:

2020-11-25T11:31:06: ⚡️ Zero v1.1.22

2020-11-25T11:31:06: ⬇️  Updating packages

2020-11-25T11:31:06: yarn install v1.22.5

2020-11-25T11:31:06: [1/4] Resolving packages...

2020-11-25T11:31:06: success Already up-to-date.

2020-11-25T11:31:06: Done in 0.18s.

2020-11-25T11:31:07: Error: Minified React error #321; visit https://reactjs.org/docs/error-decoder.html?invariant=321 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.

2020-11-25T11:31:07:     at Z (/Users/mao/work/blocklet-demos/zero-demo/node_modules/react/cjs/react.production.min.js:19:404)

2020-11-25T11:31:07:     at Object.exports.useContext (/Users/mao/work/blocklet-demos/zero-demo/node_modules/react/cjs/react.production.min.js:24:261)

2020-11-25T11:31:07:     at useMDXComponents (/Users/mao/work/blocklet-demos/zero-demo/node_modules/@mdx-js/react/dist/cjs.js:128:53)

2020-11-25T11:31:07:     at MDXProvider (/Users/mao/work/blocklet-demos/zero-demo/node_modules/@mdx-js/react/dist/cjs.js:138:23)

2020-11-25T11:31:07:     at d (/Users/mao/work/blocklet-demos/zero-demo/.blocklet/bundle/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:36:498)

2020-11-25T11:31:07:     at $a (/Users/mao/work/blocklet-demos/zero-demo/.blocklet/bundle/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:39:16)

2020-11-25T11:31:07:     at a.b.render (/Users/mao/work/blocklet-demos/zero-demo/.blocklet/bundle/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:44:476)

2020-11-25T11:31:07:     at a.b.read (/Users/mao/work/blocklet-demos/zero-demo/.blocklet/bundle/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:44:18)

2020-11-25T11:31:07:     at renderToString (/Users/mao/work/blocklet-demos/zero-demo/.blocklet/bundle/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:54:364)

2020-11-25T11:31:07:     at generateComponent (/Users/mao/.nvm/versions/node/v12.18.3/lib/node_modules/zero/node_modules/zero-handler-react/renderer.js:115:18)
mave99a commented 3 years ago

Found the reason, looks like because there was an old install of Zero-demo, the old data left there cause the problem.

I have to remove Zero-demo, choose "remove blocklet and delete data", the install again, it worked. This might be a problem either in ABT Node or the blocklet itself to ensure it need to clean up data.

mave99a commented 3 years ago

It's a bit random.... strange.

Clean up not longer after another deployment.

mave99a commented 3 years ago

Looks like it's cause by bundle logic.

I execute it manually.

After build, I can run it correctly under zero-demo, however if I goto .blocklet/bundle folder to run from there, I will hit the error I see in the ABT Node.

maos-MacBook-Pro:bundle mao$ NODE_ENV=production zero app
⚡️ Zero v1.1.22
⬇️  Updating packages
yarn install v1.22.5
warning package.json: No license field
info No lockfile found.
warning zero-demo@1.0.4: No license field
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 🔨  Building fresh packages...
success Saved lockfile.
✨  Done in 4.70s.
✔ Server running on http://localhost:3000
Error: Minified React error #321; visit https://reactjs.org/docs/error-decoder.html?invariant=321 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.
    at Z (/Users/mao/work/blocklet-demos/zero-demo/node_modules/react/cjs/react.production.min.js:19:404)
    at Object.exports.useContext (/Users/mao/work/blocklet-demos/zero-demo/node_modules/react/cjs/react.production.min.js:24:261)
    at useMDXComponents (/Users/mao/work/blocklet-demos/zero-demo/node_modules/@mdx-js/react/dist/cjs.js:128:53)
    at MDXProvider (/Users/mao/work/blocklet-demos/zero-demo/node_modules/@mdx-js/react/dist/cjs.js:138:23)
    at d (/Users/mao/work/blocklet-demos/zero-demo/.blocklet/bundle/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:36:498)
    at $a (/Users/mao/work/blocklet-demos/zero-demo/.blocklet/bundle/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:39:16)
    at a.b.render (/Users/mao/work/blocklet-demos/zero-demo/.blocklet/bundle/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:44:476)
    at a.b.read (/Users/mao/work/blocklet-demos/zero-demo/.blocklet/bundle/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:44:18)
    at renderToString (/Users/mao/work/blocklet-demos/zero-demo/.blocklet/bundle/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:54:364)
    at generateComponent (/Users/mao/.nvm/versions/node/v12.18.3/lib/node_modules/zero/node_modules/zero-handler-react/renderer.js:115:18)

This means something went wrong.


I checked and found the only possibility is Zerosever's build cache .zero directory might be the issue, which means simply copy the .zero folder to bundle may not cause the problem.

Experimented by deleted bundle/app/.zero, and run NODE_ENV=production zero app inside bundle, now everything worked and the error is gone.

We can see the folder files names and size are different (esp. the one cause problem MDX one)

image
mave99a commented 3 years ago

confirmed that if I just copy it to new directory, it will have this error.