Hello! I'm using geometryEngine in my project and have been running into CJS Syntax issues when I rely on geometryEngine.
I've been reading through the mocha and babel docs and am having a difficult time figuring out what is wrong here. I suspect imports within the library may not be playing well with CJS.
I've simplified the issue to this example (the JS branch repros without TS): Jtfinlay/arcgis-import-problems at js (github.com)
When running yarn test, I hit the following error:
$ mocha 'test/**/*.test.js' D:\repos\repro\node_modules\@arcgis\core\geometry\geometryEngine.js:5 import{G as n}from"../chunks/geometryEngineBase.js";import{hydratedAdapter as e}from"./geometryAdapters/hydrated.js";function r(n){return Array.isArray(n)?n[0].spatialReference:n&&n.spatialReference}function t(e){return n.extendedSpatialReferenceInfo(e)}function u(t,u){return n.clip(e,r(t),t,u)}function i(t,u){return n.cut(e,r(t),t,u)}function o(t,u){return n.contains(e,r(t),t,u)}function c(t,u){return n.crosses(e,r(t),t,u)}function f(t,u,i){return n.distance(e,r(t),t,u,i)}function l(t,u){return n.equals(e,r(t),t,u)}function a(t,u){return n.intersects(e,r(t),t,u)}function s(t,u){return n.touches(e,r(t),t,u)}function p(t,u){return n.within(e,r(t),t,u)}function g(t,u){return n.disjoint(e,r(t),t,u)}function m(t,u){return n.overlaps(e,r(t),t,u)}function d(t,u,i){return n.relate(e,r(t),t,u,i)}function x(t){return n.isSimple(e,r(t),t)}function w(t){return n.simplify(e,r(t),t)}function E(t,u=!1){return n.convexHull(e,r(t),t,u)}function h(t,u){re SyntaxError: Cannot use import statement outside a module at Module._compile (internal/modules/cjs/loader.js:891:18) at Module._extensions..js (internal/modules/cjs/loader.js:991:10) at Object.newLoader [as .js] (D:\repos\repro\node_modules\pirates\lib\index.js:104:7) at Module.load (internal/modules/cjs/loader.js:811:32) at Function.Module._load (internal/modules/cjs/loader.js:723:14) at Module.require (internal/modules/cjs/loader.js:848:19) at require (internal/modules/cjs/helpers.js:74:18) at Object.<anonymous> (D:\repos\repro\src\/index.js:2:1) at Module._compile (internal/modules/cjs/loader.js:955:30) at Module._compile (D:\repos\repro\node_modules\pirates\lib\index.js:99:24) at Module._extensions..js (internal/modules/cjs/loader.js:991:10) at Module.load (internal/modules/cjs/loader.js:811:32) at Function.Module._load (internal/modules/cjs/loader.js:723:14) at Module.require (internal/modules/cjs/loader.js:848:19) at require (internal/modules/cjs/helpers.js:74:18) at Object.<anonymous> (D:\repos\repro\test\/example.test.js:1:1) at Module._compile (internal/modules/cjs/loader.js:955:30) at Module._compile (D:\repos\repro\node_modules\pirates\lib\index.js:99:24) at Module._extensions..js (internal/modules/cjs/loader.js:991:10) at Object.newLoader [as .js] (D:\repos\repro\node_modules\pirates\lib\index.js:104:7) at Module.load (internal/modules/cjs/loader.js:811:32) at Function.Module._load (internal/modules/cjs/loader.js:723:14) at Module.require (internal/modules/cjs/loader.js:848:19) at require (internal/modules/cjs/helpers.js:74:18) at Object.implementationOfRequireOrImportForUnstableEsm [as requireOrImport] (D:\repos\repro\node_modules\mocha\lib\nodejs\esm-utils.js:101:12) at Object.exports.loadFilesAsync (D:\repos\repro\node_modules\mocha\lib\nodejs\esm-utils.js:88:34) at Mocha.loadFilesAsync (D:\repos\repro\node_modules\mocha\lib\mocha.js:461:19) at singleRun (D:\repos\repro\node_modules\mocha\lib\cli\run-helpers.js:125:15) at exports.runMocha (D:\repos\repro\node_modules\mocha\lib\cli\run-helpers.js:190:10) at Object.exports.handler (D:\repos\repro\node_modules\mocha\lib\cli\run.js:374:11) at D:\repos\repro\node_modules\yargs\build\index.cjs:443:71 error Command failed with exit code 1.
Here is the yarn test command:
"test": "mocha 'test/**/*.test.js'"
I also asked this question on stackoverflow: typescript - Arcgis js, import geometryEngine, SyntaxError: Cannot use import statement outside a mo...
Appreciate any help!
It looks like you're running this in a node environment with ESM.
Check out our node sample.
You have a couple of options, but this would work.
That will get your tests and everything else working.
Thank you - no luck out of the gate with the three changes you listed, but I will debug through the `jsapi-node` resources for a bit and let you know if I make headway.
If you are considering hiring a dedicated software company to handle the task of customizing your software then there are a number of factors that you should consider before going ahead with this decision. The most important factor that you need to consider is the budget that you are willing to spend on hiring dedicated software team to handle your software requirements. When hiring dedicated software team https://mlsdev.com/services/business-analysis make sure that they are reliable and trustworthy. They should have the necessary skill set and knowledge base to ensure that your application is developed efficiently and meets all your software enhancement needs.