Comments (7)
(base) martin@martin-HP-EliteBook-840-G5:~/tmp/prernder-test$ yarn rw build
yarn run v1.22.19
@dthyresson Issue was here. Stupidly I was still using v1.22.19 of yarn
somehow in my installs and builds. Maybe cause it is bundled with nvm? not sure.
So the error makes sense now, yarn
v4 will do different module resolution and that's why it couldn't find that file when on v1.
The following commands fixed it and then rw build
with prerender started working:
yarn set version 4.3.0
yarn --version
4.3.0
yarn
Thanks for the help
from redwood.
Hi @MartinDawson and thanks for reporting.
I attempted to reproduce with a very basic pretender case and did not encounter the error you had -- but your setup is likely a different.
Steps:
yarn create redwood-app ~/tmp/prernder-test
(TS on)yarn rw g page BlogPost
- Gave it a param and prerender
<Route path="/blog-post/{id:Int}" page={BlogPostPage} name="blogPost" prerender />
- Added param to page
import { Link, routes } from '@redwoodjs/router'
import { Metadata } from '@redwoodjs/web'
const BlogPostPage = ({ id }: { id: number }) => {
return (
<>
<Metadata title="BlogPost" description="BlogPost page" />
<h1>BlogPostPage - {id}</h1>
<p>
Find me in <code>./web/src/pages/BlogPostPage/BlogPostPage.tsx</code>
</p>
<p>
My default route is named <code>blogPost</code>, link to me with `
<Link to={routes.blogPost({ id })}>BlogPost</Link>`
</p>
</>
)
}
export default BlogPostPage
- added
web/src/pages/BlogPostPage/BlogPostPage.routeHooks.js
export function routeParameters() {
return [{ id: 1 }, { id: 2 }, { id: 3 }]
}\
yarn rw build
✔ Building Web...
Creating 200.html...
Starting prerendering...
✔ Prerendering /blog-post/1 -> web/dist/blog-post/1.html
✔ Prerendering /blog-post/2 -> web/dist/blog-post/2.html
✔ Prerendering /blog-post/3 -> web/dist/blog-post/3.html
yarn rw serve
and when I visit a preredendered page see the 2
id in pre-rendered markup
but if I go to a hook not pre-rendered then renders on navigation
Not sure I understand how you used:
function getRouteHooksFilePath(routeFilePath) {
const routeHooksFilePathTs = routeFilePath.replace(
/\.[jt]sx?$/,
".routeHooks.ts"
);
async function expandRouteParameters(route) {
const routeHooksFilePath = getRouteHooksFilePath(route.filePath);
Could you provide some examples maybe with what the Page is doing that might cause that error?
I'll also try with a GraphQL query/cell and if that is different will report back,
from redwood.
FYI, tried with a cell and GraphQL query as well and my post and title was pre-rendered:
from redwood.
@dthyresson I did your exact steps and it fails on yarn rw build
.
Here's a repo for you: https://github.com/MartinDawson/prerender-broken
(base) martin@martin-HP-EliteBook-840-G5:~/tmp/prernder-test$ yarn rw build
yarn run v1.22.19
$ /home/martin/tmp/prernder-test/node_modules/.bin/rw build
✔ Generating Prisma Client...
✔ Verifying graphql schema...
✔ Building API...
✔ Building Web...
Creating 200.html...
Starting prerendering...
$ /home/martin/tmp/prernder-test/node_modules/.bin/rw prerender
(node:36786) Warning: Accessing non-existent property 'get' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
(node:36786) Warning: Accessing non-existent property 'has' of module exports inside circular dependency
(node:36786) Warning: Accessing non-existent property 'set' of module exports inside circular dependency
(node:36786) Warning: Accessing non-existent property 'Map' of module exports inside circular dependency
(node:36786) Warning: Accessing non-existent property 'proto' of module exports inside circular dependency
✖ Failed to render "/home/martin/tmp/prernder-test/web/src/pages/BlogPostPage/BlogPostPage.tsx"
◼ Prerendering /blog-post/2 -> web/dist/blog-post/2.html
◼ Prerendering /blog-post/3 -> web/dist/blog-post/3.html
You can use `yarn rw prerender --dry-run` to debug
---------- Error rendering path "/blog-post/1" ----------
TypeError: Cannot read properties of undefined (reading 'createCell')
at Object.createCell (/home/martin/tmp/prernder-test/node_modules/@redwoodjs/web/dist/index.js:91:24)
at Object.<anonymous> (/home/martin/tmp/prernder-test/node_modules/@redwoodjs/web/dist/components/createCell.js:8:22)
at Module._compile (node:internal/modules/cjs/loader:1358:14)
at Module._compile (/home/martin/tmp/prernder-test/node_modules/pirates/lib/index.js:117:24)
at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
at Object.newLoader [as .js] (/home/martin/tmp/prernder-test/node_modules/pirates/lib/index.js:121:7)
at Module.load (node:internal/modules/cjs/loader:1208:32)
at Function.Module._load (node:internal/modules/cjs/loader:1024:12)
at Module.require (node:internal/modules/cjs/loader:1233:19)
at require (node:internal/modules/helpers:179:18)
at Object.<anonymous> (/home/martin/tmp/prernder-test/node_modules/@redwoodjs/web/dist/index.js:136:19)
at Module._compile (node:internal/modules/cjs/loader:1358:14)
at Module._compile (/home/martin/tmp/prernder-test/node_modules/pirates/lib/index.js:117:24)
at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
at Object.newLoader [as .js] (/home/martin/tmp/prernder-test/node_modules/pirates/lib/index.js:121:7)
at Module.load (node:internal/modules/cjs/loader:1208:32)
at Function.Module._load (node:internal/modules/cjs/loader:1024:12)
at Module.require (node:internal/modules/cjs/loader:1233:19)
at require (node:internal/modules/helpers:179:18)
at Object.<anonymous> (/home/martin/tmp/prernder-test/web/src/App.tsx:1:1)
at Module._compile (node:internal/modules/cjs/loader:1358:14)
at Module._compile (/home/martin/tmp/prernder-test/node_modules/pirates/lib/index.js:117:24)
at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
at Object.newLoader [as .tsx] (/home/martin/tmp/prernder-test/node_modules/pirates/lib/index.js:121:7)
at Module.load (node:internal/modules/cjs/loader:1208:32)
at Function.Module._load (node:internal/modules/cjs/loader:1024:12)
at Module.require (node:internal/modules/cjs/loader:1233:19)
at require (node:internal/modules/helpers:179:18)
at runPrerender (/home/martin/tmp/prernder-test/node_modules/@redwoodjs/prerender/dist/runPrerender.js:256:7)
at _Task.task [as taskFn] (/home/martin/tmp/prernder-test/node_modules/@redwoodjs/cli/dist/commands/prerenderHandler.js:143:37)
at _Task.run (/home/martin/tmp/prernder-test/node_modules/listr2/dist/index.cjs:2049:11)
Running diagnostic checks
✔ Diagnostics checks passed
Tips:
- This could mean that a library you're using does not support SSR.
- Avoid using `window` in the initial render path through your React components without checks.
See https://redwoodjs.com/docs/prerender#prerender-utils
- Avoid prerendering Cells with authenticated queries, by conditionally rendering them.
See https://redwoodjs.com/docs/prerender#common-warnings--errors
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Error: Command failed with exit code 1: yarn rw prerender
at makeError (/home/martin/tmp/prernder-test/node_modules/execa/lib/error.js:60:11)
at handlePromise (/home/martin/tmp/prernder-test/node_modules/execa/index.js:118:26)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async triggerPrerender (/home/martin/tmp/prernder-test/node_modules/@redwoodjs/cli/dist/commands/buildHandler.js:183:5)
at async /home/martin/tmp/prernder-test/node_modules/@redwoodjs/cli/dist/commands/buildHandler.js:195:7
at async timedTelemetry (/home/martin/tmp/prernder-test/node_modules/@redwoodjs/telemetry/dist/telemetry.js:70:18)
at async handler (/home/martin/tmp/prernder-test/node_modules/@redwoodjs/cli/dist/commands/buildHandler.js:192:3)
at async runYargs (/home/martin/tmp/prernder-test/node_modules/@redwoodjs/cli/dist/index.js:151:3)
at async /home/martin/tmp/prernder-test/node_modules/@redwoodjs/cli/dist/index.js:105:7
at async main (/home/martin/tmp/prernder-test/node_modules/@redwoodjs/cli/dist/index.js:94:3)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Need help?
- Not sure about something or need advice? Reach out on our Forum
- Think you've found a bug? Open an issue on our GitHub
- Here's your unique error reference to quote: '7e280c65-3253-4ecf-8de4-5614a699df64'
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
Versions:
(base) martin@martin-HP-EliteBook-840-G5:~/tmp/prernder-test$ yarn -v
1.22.19
(base) martin@martin-HP-EliteBook-840-G5:~/tmp/prernder-test$ node -v
v20.14.0
(base) martin@martin-HP-EliteBook-840-G5:~/tmp/prernder-test$ npm -v
10.7.0
It looks like exports.createCell = _web.createCell;
createCell is undefined always for some reason
It looks to me like my @redwoodjs/web doesn't have createCell
exported for some bizarre reason even though I see it in the node_modules file for that package as an export.
I checked my versions and I don't have multiple installed versions:
(base) martin@martin-HP-EliteBook-840-G5:~/tmp/prernder-test$ npm list @redwoodjs/web
prernder-test@ /home/martin/tmp/prernder-test
├─┬ @redwoodjs/[email protected]
│ ├─┬ @redwoodjs/[email protected]
│ │ └─┬ @redwoodjs/[email protected]
│ │ └── @redwoodjs/[email protected] deduped
│ └─┬ @redwoodjs/[email protected]
│ └── @redwoodjs/[email protected] deduped
├── @redwoodjs/[email protected]
└─┬ [email protected] -> ./web
└── @redwoodjs/[email protected] deduped
(base) martin@martin-HP-EliteBook-840-G5:~/tmp/prernder-test$ npm ls @redwoodjs/web
prernder-test@ /home/martin/tmp/prernder-test
├─┬ @redwoodjs/[email protected]
│ ├─┬ @redwoodjs/[email protected]
│ │ └─┬ @redwoodjs/[email protected]
│ │ └── @redwoodjs/[email protected] deduped
│ └─┬ @redwoodjs/[email protected]
│ └── @redwoodjs/[email protected] deduped
├── @redwoodjs/[email protected]
└─┬ [email protected] -> ./web
└── @redwoodjs/[email protected] deduped
(base) martin@martin-HP-EliteBook-840-G5:~/tmp/prernder-test$ npm list -g @redwoodjs/web
/home/martin/.nvm/versions/node/v20.14.0/lib
└── (empty)
I'm on Ubuntu 22.x
from redwood.
@MartinDawson Thanks much for the repo.
I cloned and just did a yarn rw build
and seemed to work (am on OSX).
prerender-broken main % yarn rw build
✔ Generating Prisma Client...
✔ Verifying graphql schema...
✔ Building API...
✔ Building Web...
Creating 200.html...
Starting prerendering...
✔ Prerendering /blog-post/1 -> web/dist/blog-post/1.html
✔ Prerendering /blog-post/2 -> web/dist/blog-post/2.html
✔ Prerendering /blog-post/3 -> web/dist/blog-post/3.html
Am on OSX and
prerender-broken main % node -v
v20.10.0
prerender-broken main % yarn -v
4.3.0
prerender-broken main % npm -v
10.2.3
I'll try node 20.14.0.
from redwood.
@dthyresson weird.
I just tried on an Ubuntu 22.x Virtual Machine to narrow it down and it worked:
root@C.11280170:~/prerender-broken$ yarn run rw build
✔ Generating Prisma Client...
✔ Verifying graphql schema...
✔ Building API...
✔ Building Web...
Creating 200.html...
Starting prerendering...
✔ Prerendering /blog-post/1 -> web/dist/blog-post/1.html
✔ Prerendering /blog-post/2 -> web/dist/blog-post/2.html
✔ Prerendering /blog-post/3 -> web/dist/blog-post/3.html
I will have a look and see what's wrong with my redwoodjs/yarn/npm/node on my local and reply to this thread soon. Thanks
from redwood.
using v1.22.19 of
yarn
somehow in my installs and builds. Maybe cause it is bundled with nvm? not sure.
It might be. I was going down that path testing yesterday and used nvm to update node and all off the sudden my yarn reverted from v4 to v1 and I struggled to get to back to using 4. Must be with nvm.
Glad it's working again.
from redwood.
Related Issues (20)
- [Bug?]: Can't configure Jest/Vitest to run tests inside of scripts dir
- [Bug?]: `web/src/auto-imports.d.ts` file generated after running `yarn rw storybook-vite` HOT 4
- [Bug?]: Flaky Testing with Prisma migrations failing HOT 5
- [Bug]: Docs search is broken HOT 3
- [Bug?]: yarn rw upgrade for 7.7.1 error HOT 6
- [Bug]: Scenario files in a __tests__ directory throws error in Jest HOT 3
- [Bug?]: Docker compose errors with graphql fragments HOT 8
- [Bug?]: Dev server builds break after multiple consecutive filesystem saves HOT 5
- [RFC]: Remove default UserExample model in newly generated Redwood app
- [Background jobs] Generators
- [Bug?]: Trusted Documents does not work with Realtime. HOT 7
- [Feature]: ESLint flat config support for @redwoodjs/eslint-config HOT 2
- [Bug?]: corepack enable does nothing on fresh clone (yarn stays on v1.x) HOT 1
- [Feature]: ESLint flat config support for @redwoodjs/eslint-plugin HOT 1
- [Bug?]: Deploy to Vercel breaks all server functions (500 errors with cryptic messages) HOT 9
- [Bug?]: yarn rw setup server-file fails with js but works with ts HOT 5
- Multiple RW apps all use the same debug port
- Syntax check `package.json` for dual ESM+CJS support in `@redwoodjs/auth`
- [Bug?]: cannot set bodyLimit using server.ts HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from redwood.