Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TypeError: Cannot read properties of null (reading 'render') #5480

Closed
elchininet opened this issue Apr 21, 2024 · 12 comments · Fixed by #5481 or #5483
Closed

TypeError: Cannot read properties of null (reading 'render') #5480

elchininet opened this issue Apr 21, 2024 · 12 comments · Fixed by #5481 or #5483

Comments

@elchininet
Copy link

Rollup Version

4.16.0

Operating System (or Browser)

Ubuntu 20.04.6 LTS / MacOS Sonoma 14.4.1

Node Version (if applicable)

18.20.2

Link To Reproduction

elchininet/shadow-dom-selector#55

Expected Behaviour

Build should success as it succeeded on previous versions.

Actual Behaviour

Build fails with an error coming from ConditionalExpression.render:

at ConditionalExpression.render (/xxx/node_modules/rollup/dist/shared/rollup.js:11185:24)
    at VariableDeclarator.render (/xxx/node_modules/rollup/dist/shared/rollup.js:12038:18)
    at VariableDeclaration.render (/xxx/node_modules/rollup/dist/shared/rollup.js:13724:28)
    at renderStatementList (/xxx/node_modules/rollup/dist/shared/rollup.js:9106:25)
    at BlockStatement.render (/xxx/node_modules/rollup/dist/shared/rollup.js:9272:13)
    at FunctionDeclaration.render (/xxx/node_modules/rollup/dist/shared/rollup.js:6348:23)
    at ExportNamedDeclaration.render (/xxx/node_modules/rollup/dist/shared/rollup.js:11436:30)
    at renderStatementList (/xxx/node_modules/rollup/dist/shared/rollup.js:9095:35)
    at Program.render (/xxx/node_modules/rollup/dist/shared/rollup.js:12880:13)
    at Module.render (/xxx/node_modules/rollup/dist/shared/rollup.js:15641:18)

I tried to reproduce it in Repl without success, but seeing that it is coming from ConditionalExpression.render that was recently refactored this could give a clue to the devs.

@liuly0322
Copy link
Contributor

A smaller version in repl

@liuly0322
Copy link
Contributor

I'm working on a PR, will be finished soon

Copy link

This issue has been resolved via #5481 as part of rollup@4.16.1. You can test it via npm install rollup.

@elchininet
Copy link
Author

Fixed: elchininet/shadow-dom-selector#56

Thanks for the quick fix 👍🏼

@mshabarov
Copy link

I get a similar error when running a build with Vite 5.2.10 that uses rollup 4.16.1:

vite v5.2.10 building for production...
transforming...
✓ 736 modules transformed.
x Build failed in 14.55s
error during build:

TypeError: Cannot read properties of null (reading 'render')
    at LogicalExpression.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:11069:33)
    at LogicalExpression.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:11081:24)
    at SequenceExpression.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:11614:22)
    at IfStatement.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:10216:23)
    at renderStatementList (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:7664:25)
    at BlockStatement.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:7830:13)
    at FunctionDeclaration.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:4892:23)
    at renderStatementList (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:7664:25)
    at BlockStatement.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:7830:13)
    at FunctionDeclaration.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:4892:23)
    at renderStatementList (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:7664:25)
    at BlockStatement.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:7830:13)
    at ArrowFunctionExpression.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:4892:23)
    at CallExpression.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:9234:21)
    at VariableDeclarator.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:10604:18)
    at VariableDeclaration.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:12293:28)
    at renderStatementList (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:7664:25)
    at BlockStatement.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:7830:13)
    at FunctionExpression.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:4892:23)
    at FunctionExpression.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:10138:15)
    at CallExpression.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:9234:21)
    at ExpressionStatement.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:4892:23)
    at ExpressionStatement.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:7761:15)
    at renderStatementList (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:7664:25)
    at Program.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:11449:13)
    at Module.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:14217:18)
    at Chunk.renderModules (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:16790:41)
    at Chunk.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:16286:111)
    at xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:17963:72
    at Array.map (<anonymous>)
    at renderChunks (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:17963:53)
    at Bundle.generate (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:18201:19)
    at async xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:20748:27
    at async catchUnfinishedHookActions (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:20175:16)
    at async build (xxx/node_modules/vite/dist/node/chunks/dep-DkOS1hkm.js:67489:22)
    at async CAC.<anonymous> (xxx/node_modules/vite/dist/node/cli.js:842:9)

The problem seems to be in LogicalExpression.render method here:

this.getUsedBranch().render(code, options, { // <--------
                isCalleeOfRenderedParent,
                preventASI,
                renderedParentType: renderedParentType || this.parent.type,
                renderedSurroundingElement: renderedSurroundingElement || this.parent.type
            });

Could you please suggest if this something not covered yet in rollup, or a misconfiguration on my side?

@liuly0322
Copy link
Contributor

I get a similar error when running a build with Vite 5.2.10 that uses rollup 4.16.1:

vite v5.2.10 building for production...
transforming...
✓ 736 modules transformed.
x Build failed in 14.55s
error during build:

TypeError: Cannot read properties of null (reading 'render')
    at LogicalExpression.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:11069:33)
    at LogicalExpression.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:11081:24)
    at SequenceExpression.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:11614:22)
    at IfStatement.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:10216:23)
    at renderStatementList (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:7664:25)
    at BlockStatement.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:7830:13)
    at FunctionDeclaration.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:4892:23)
    at renderStatementList (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:7664:25)
    at BlockStatement.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:7830:13)
    at FunctionDeclaration.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:4892:23)
    at renderStatementList (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:7664:25)
    at BlockStatement.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:7830:13)
    at ArrowFunctionExpression.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:4892:23)
    at CallExpression.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:9234:21)
    at VariableDeclarator.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:10604:18)
    at VariableDeclaration.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:12293:28)
    at renderStatementList (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:7664:25)
    at BlockStatement.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:7830:13)
    at FunctionExpression.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:4892:23)
    at FunctionExpression.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:10138:15)
    at CallExpression.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:9234:21)
    at ExpressionStatement.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:4892:23)
    at ExpressionStatement.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:7761:15)
    at renderStatementList (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:7664:25)
    at Program.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:11449:13)
    at Module.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:14217:18)
    at Chunk.renderModules (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:16790:41)
    at Chunk.render (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:16286:111)
    at xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:17963:72
    at Array.map (<anonymous>)
    at renderChunks (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:17963:53)
    at Bundle.generate (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:18201:19)
    at async xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:20748:27
    at async catchUnfinishedHookActions (xxx/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry.js:20175:16)
    at async build (xxx/node_modules/vite/dist/node/chunks/dep-DkOS1hkm.js:67489:22)
    at async CAC.<anonymous> (xxx/node_modules/vite/dist/node/cli.js:842:9)

The problem seems to be in LogicalExpression.render method here:

this.getUsedBranch().render(code, options, { // <--------
                isCalleeOfRenderedParent,
                preventASI,
                renderedParentType: renderedParentType || this.parent.type,
                renderedSurroundingElement: renderedSurroundingElement || this.parent.type
            });

Could you please suggest if this something not covered yet in rollup, or a misconfiguration on my side?

It is most probably a rollup error, I will check it later.

@liuly0322
Copy link
Contributor

@mshabarov Could you please provide a minimal way to reproduce?

@mshabarov
Copy link

mshabarov commented Apr 22, 2024

@liuly0322 not a minimal example project, unfortunately, but I'm able to reproduce with the example project that is attached to this issue- "k8s-demo-app.zip".

Download the project and run ./mvnw -B. Then the above error should show up in the console logs when Vite starts to build the bundle.

@liuly0322
Copy link
Contributor

@liuly0322 not a minimal example project, unfortunately, but I'm able to reproduce with the example project that is attached to this issue- "k8s-demo-app.zip".

Download the project and run ./mvnw -B. Then the above error should show up in the console logs when Vite starts to build the bundle.

Yes, it is a rollup bug, thanks for spotting. It's weird that I don't know how to solve it now and will have a detailed look later.

some logs:

vite v5.2.8 building for production...
pass:  1
pass:  2
pass:  3
pass:  4
pass:  5
pass:  6
getUsedBranch called
getUsedBranch called
**include function called**
getUsedBranch called
pass:  7
pass:  8
deoptimizeCache called and reset usedBranch
pass:  9
pass:  10
pass:  11
pass:  12
pass:  13
pass:  14
pass:  15
pass:  16
pass:  17
pass:  18
pass:  19
pass:  20
pass:  21
pass:  22
pass:  23
✓ 738 modules transformed.
render called
getUsedBranchValue returns null...

It seems that there should be a new include call to this node after deoptimizeCache but there isn't.

@mshabarov
Copy link

The above issue has been fixed for us in rollup@4.16.3. Thanks a lot 👍

Copy link

This issue has been resolved via #5483 as part of rollup@4.17.0. You can test it via npm install rollup.

1 similar comment
Copy link

This issue has been resolved via #5483 as part of rollup@4.17.0. You can test it via npm install rollup.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants