'Any suggestion how to remove error "SyntaxError: Cannot use import statement outside a module" while running Appium.js from Java code?

Any suggestion how to remove error "SyntaxError: Cannot use import statement outside a module" while running Appium.js from Java code? Trying adding type: "type": "module" in your package.json or the .mjs extension. when "type": "module" added the new exception came. node:internal/errors:464 ErrorCaptureStackTrace(err); ^

Error [ERR_MODULE_NOT_FOUND]: Cannot find module 'C:\Users\Ritesh Mittal\AppData\Roaming\npm\node_modules\appium\lib\logger' imported from C:\Users\Ritesh Mittal\AppData\Roaming\npm\node_modules\appium\lib\appium.js at new NodeError (node:internal/errors:371:5) at finalizeResolution (node:internal/modules/esm/resolve:416:11) at moduleResolve (node:internal/modules/esm/resolve:932:10) at defaultResolve (node:internal/modules/esm/resolve:1044:11) at ESMLoader.resolve (node:internal/modules/esm/loader:422:30) at ESMLoader.getModuleJob (node:internal/modules/esm/loader:222:40) at ModuleWrap. (node:internal/modules/esm/module_job:76:40) at link (node:internal/modules/esm/module_job:75:36) { code: 'ERR_MODULE_NOT_FOUND' }

Used cjs-to-es6 utility to convert appium.js in appium.mjs. But, js not converted mjs.

//Code

AppiumDriverLocalService service;
AppiumServiceBuilder builder = new AppiumServiceBuilder();
builder.withIPAddress("127.0.0.1");
builder.usingPort(Integer.parseInt("4723"));
builder.withAppiumJS(new File("C:\\Users\\Ritesh Mittal\\AppData\\Roaming\\npm\\node_modules\\appium\\lib\\appium.js"));

service = AppiumDriverLocalService.buildService(builder);
service.start();
System.out.println("APpium Service Started on: ");

Any help?



Solution 1:[1]

I believe you need to use the built main.js file instead of appium.js.

Try the following:

builder.withAppiumJS(new File("C:\\Users\\Ritesh Mittal\\AppData\\Roaming\\npm\\node_modules\\appium\\build\\lib\\main.js"));

Solution 2:[2]

It is solved correcting Appium path. It was needed till node_modules\appium

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 lezhumain
Solution 2 mittalri