ui5-tooling icon indicating copy to clipboard operation
ui5-tooling copied to clipboard

`ERR! lbt:analyzer:JSModuleAnalyzer Unhandled AST node type ChainExpression Node`

Open pubmikeb opened this issue 3 years ago • 4 comments

I'm running the UI5 Tolling process via npx:

import {execSync} from "child_process";

execSync("npx --yes @ui5/cli build --config ./devops/ui5.rel.yaml --exclude-task=createDebugFiles --dest ./src/webapp/rel/production --clean-dest true", {stdio: "inherit"});

In the console I get the following multiple errors:

info builder:builder application com.myApp 🔨 (5/7) Running task generateComponentPreload...
ERR! lbt:analyzer:JSModuleAnalyzer Unhandled AST node type ChainExpression Node {
ERR! lbt:analyzer:JSModuleAnalyzer   type: 'ChainExpression',
ERR! lbt:analyzer:JSModuleAnalyzer   start: 1399,
ERR! lbt:analyzer:JSModuleAnalyzer   end: 1429,
ERR! lbt:analyzer:JSModuleAnalyzer   expression: Node {
ERR! lbt:analyzer:JSModuleAnalyzer     type: 'MemberExpression',
ERR! lbt:analyzer:JSModuleAnalyzer     start: 1399,
ERR! lbt:analyzer:JSModuleAnalyzer     end: 1429,
ERR! lbt:analyzer:JSModuleAnalyzer     object: Node {
ERR! lbt:analyzer:JSModuleAnalyzer       type: 'Identifier',
ERR! lbt:analyzer:JSModuleAnalyzer       start: 1399,
ERR! lbt:analyzer:JSModuleAnalyzer       end: 1416,
ERR! lbt:analyzer:JSModuleAnalyzer       name: 'uploadDestination'
ERR! lbt:analyzer:JSModuleAnalyzer     },
ERR! lbt:analyzer:JSModuleAnalyzer     property: Node {
ERR! lbt:analyzer:JSModuleAnalyzer       type: 'Identifier',
ERR! lbt:analyzer:JSModuleAnalyzer       start: 1418,
ERR! lbt:analyzer:JSModuleAnalyzer       end: 1429,
ERR! lbt:analyzer:JSModuleAnalyzer       name: 'isSucceeded'
ERR! lbt:analyzer:JSModuleAnalyzer     },
ERR! lbt:analyzer:JSModuleAnalyzer     computed: false,
ERR! lbt:analyzer:JSModuleAnalyzer     optional: true
ERR! lbt:analyzer:JSModuleAnalyzer   }
ERR! lbt:analyzer:JSModuleAnalyzer }
ERR! lbt:resources:ResourcePool failed to analyze webapp/controller/document/DocumentEdit.controller.js: Error: Unhandled AST node type ChainExpression
ERR! lbt:resources:ResourcePool     at visit (C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5\cli\node_modules\@ui5\build
er\lib\lbt\analyzer\JSModuleAnalyzer.js:506:12)
ERR! lbt:resources:ResourcePool     at visit (C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5\cli\node_modules\@ui5\build
er\lib\lbt\analyzer\JSModuleAnalyzer.js:498:7)
ERR! lbt:resources:ResourcePool     at C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5\cli\node_modules\@ui5\builder\lib\
lbt\analyzer\JSModuleAnalyzer.js:370:29
ERR! lbt:resources:ResourcePool     at Array.forEach (<anonymous>)
ERR! lbt:resources:ResourcePool     at visit (C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5\cli\node_modules\@ui5\build
er\lib\lbt\analyzer\JSModuleAnalyzer.js:370:10)
ERR! lbt:resources:ResourcePool     at visit (C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5\cli\node_modules\@ui5\build
er\lib\lbt\analyzer\JSModuleAnalyzer.js:510:6)
ERR! lbt:resources:ResourcePool     at visit (C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5\cli\node_modules\@ui5\build
er\lib\lbt\analyzer\JSModuleAnalyzer.js:510:6)
ERR! lbt:resources:ResourcePool     at C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5\cli\node_modules\@ui5\builder\lib\
lbt\analyzer\JSModuleAnalyzer.js:370:29
ERR! lbt:resources:ResourcePool     at Array.forEach (<anonymous>)
ERR! lbt:resources:ResourcePool     at visit (C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5\cli\node_modules\@ui5\build
er\lib\lbt\analyzer\JSModuleAnalyzer.js:370:10)
ERR! lbt:resources:ResourcePool     at visit (C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5\cli\node_modules\@ui5\build
er\lib\lbt\analyzer\JSModuleAnalyzer.js:510:6)
ERR! lbt:resources:ResourcePool     at JSModuleAnalyzer.analyze (C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5\cli\node
_modules\@ui5\builder\lib\lbt\analyzer\JSModuleAnalyzer.js:290:3)
ERR! lbt:resources:ResourcePool     at determineDependencyInfo (C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5\cli\node_
modules\@ui5\builder\lib\lbt\resources\ResourcePool.js:76:16)
ERR! lbt:resources:ResourcePool     at processTicksAndRejections (node:internal/process/task_queues:96:5)
ERR! lbt:resources:ResourcePool     at async Promise.all (index 34)
ERR! lbt:resources:ResourcePool     at async BundleBuilder._createBundle (C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5
\cli\node_modules\@ui5\builder\lib\lbt\bundle\Builder.js:141:26)
ERR! lbt:analyzer:JSModuleAnalyzer Unhandled AST node type ChainExpression Node {
ERR! lbt:analyzer:JSModuleAnalyzer   type: 'ChainExpression',
ERR! lbt:analyzer:JSModuleAnalyzer   start: 9711,
ERR! lbt:analyzer:JSModuleAnalyzer   end: 9731,
ERR! lbt:analyzer:JSModuleAnalyzer   expression: Node {
ERR! lbt:analyzer:JSModuleAnalyzer     type: 'MemberExpression',
ERR! lbt:analyzer:JSModuleAnalyzer     start: 9711,
ERR! lbt:analyzer:JSModuleAnalyzer     end: 9731,
ERR! lbt:analyzer:JSModuleAnalyzer     object: Node {
ERR! lbt:analyzer:JSModuleAnalyzer       type: 'MemberExpression',
ERR! lbt:analyzer:JSModuleAnalyzer       start: 9711,
ERR! lbt:analyzer:JSModuleAnalyzer       end: 9725,
ERR! lbt:analyzer:JSModuleAnalyzer       object: [Node],
ERR! lbt:analyzer:JSModuleAnalyzer       property: [Node],
ERR! lbt:analyzer:JSModuleAnalyzer       computed: false,
ERR! lbt:analyzer:JSModuleAnalyzer       optional: true
ERR! lbt:analyzer:JSModuleAnalyzer     },
ERR! lbt:analyzer:JSModuleAnalyzer     property: Node { type: 'Identifier', start: 9727, end: 9731, name: 'link' },
ERR! lbt:analyzer:JSModuleAnalyzer     computed: false,
ERR! lbt:analyzer:JSModuleAnalyzer     optional: true
ERR! lbt:analyzer:JSModuleAnalyzer   }
ERR! lbt:analyzer:JSModuleAnalyzer }
ERR! lbt:resources:ResourcePool failed to analyze webapp/controller/BaseController.js: Error: Unhandled AST node type ChainExpression
ERR! lbt:resources:ResourcePool     at visit (C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5\cli\node_modules\@ui5\build
er\lib\lbt\analyzer\JSModuleAnalyzer.js:506:12)
ERR! lbt:resources:ResourcePool     at visit (C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5\cli\node_modules\@ui5\build
er\lib\lbt\analyzer\JSModuleAnalyzer.js:510:6)
ERR! lbt:resources:ResourcePool     at visit (C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5\cli\node_modules\@ui5\build
er\lib\lbt\analyzer\JSModuleAnalyzer.js:510:6)
ERR! lbt:resources:ResourcePool     at C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5\cli\node_modules\@ui5\builder\lib\
lbt\analyzer\JSModuleAnalyzer.js:370:29
ERR! lbt:resources:ResourcePool     at Array.forEach (<anonymous>)
ERR! lbt:resources:ResourcePool     at visit (C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5\cli\node_modules\@ui5\build
er\lib\lbt\analyzer\JSModuleAnalyzer.js:370:10)
ERR! lbt:resources:ResourcePool     at visit (C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5\cli\node_modules\@ui5\build
er\lib\lbt\analyzer\JSModuleAnalyzer.js:510:6)
ERR! lbt:resources:ResourcePool     at visit (C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5\cli\node_modules\@ui5\build
er\lib\lbt\analyzer\JSModuleAnalyzer.js:498:7)
ERR! lbt:resources:ResourcePool     at C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5\cli\node_modules\@ui5\builder\lib\
lbt\analyzer\JSModuleAnalyzer.js:370:29
ERR! lbt:resources:ResourcePool     at Array.forEach (<anonymous>)
ERR! lbt:resources:ResourcePool     at visit (C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5\cli\node_modules\@ui5\build
er\lib\lbt\analyzer\JSModuleAnalyzer.js:370:10)
ERR! lbt:resources:ResourcePool     at visit (C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5\cli\node_modules\@ui5\build
er\lib\lbt\analyzer\JSModuleAnalyzer.js:510:6)
ERR! lbt:resources:ResourcePool     at visit (C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5\cli\node_modules\@ui5\build
er\lib\lbt\analyzer\JSModuleAnalyzer.js:510:6)
ERR! lbt:resources:ResourcePool     at visit (C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5\cli\node_modules\@ui5\build
er\lib\lbt\analyzer\JSModuleAnalyzer.js:510:6)
ERR! lbt:resources:ResourcePool     at C:\Users\User\AppData\Local\npm-cache\_npx\b3b0151a15b6054b\node_modules\@ui5\cli\node_modules\@ui5\builder\lib\
lbt\analyzer\JSModuleAnalyzer.js:370:29
ERR! lbt:resources:ResourcePool     at Array.forEach (<anonymous>)

Context

  • UI5 Module Version: 2.14.0 (the latest version available via npx)
  • Node.js Version: 17.0.1 / 18.0.0
  • npm Version: 8.1.1
  • OS/Platform: Windows 10

Notes

There was no such error on 2.13.0

pubmikeb avatar Oct 23 '21 17:10 pubmikeb

Please read https://github.com/SAP/ui5-builder/pull/615#issuecomment-860509672 for an explanation why we plan to fix this only with the next major version of the tooling.

codeworrior avatar Oct 23 '21 20:10 codeworrior

Please read SAP/ui5-builder#615 (comment) for an explanation why we plan to fix this only with the next major version of the tooling.

Thanks a lot for the reference. Is there any roadmap when the version 3.0 will be released?

pubmikeb avatar Oct 23 '21 22:10 pubmikeb

Closing as duplicate.

There is a roadmap for 3.0 but no timeline. Subscribe to https://github.com/SAP/ui5-tooling/issues/506 to get updates

RandomByte avatar Oct 25 '21 08:10 RandomByte

Actually let's keep this issue open as reference for this requirement.

RandomByte avatar Oct 26 '21 08:10 RandomByte

For others comming here in search for a solution:

It seems like the build process currently does not support optional chaining (AKA null conditional operator):

var value = ObjectName?.PropertyName;

Try to replace the ?. operator, i.e. like so:

var value = ObjectName ? ObjectName.PropertyName : null;

Jpsy avatar Feb 13 '23 15:02 Jpsy

...or use ui5-tooling 3.0 ;-)

codeworrior avatar Feb 13 '23 15:02 codeworrior

Closing as resolved with v3.0.0

matz3 avatar Feb 13 '23 15:02 matz3

...or use ui5-tooling 3.0 ;-)

Great news! Just tested: v3 indeed solves the problem.

To migrate: npm i --save-dev @ui5/cli@latest ...and if you want, remove the block "ui5" (including ui5.dependencies) from package.json. It is not needed anymore.

Details see: https://sap.github.io/ui5-tooling/v3/updates/migrate-v3/

Jpsy avatar Feb 14 '23 09:02 Jpsy