Arcgis js, импорт geometryEngine, ошибка синтаксиса: невозможно использовать оператор импорта вне модуля

typescript #mocha.js #commonjs #arcgis-js-api #ts-node

#typescript #mocha.js #commonjs #arcgis-js-api #ts-узел

Вопрос:

Я пытался настроить тесты mocha для кода, который использует библиотеку arcgis-js. Я сталкиваюсь с проблемами синтаксической ошибки CJS при использовании geometryEngine .

Я читал документы ts-node, и мне трудно понять, что здесь не так — я подозреваю, что это может быть внутренним для библиотеки? Я пробовал настраивать babel и пробовал разные цели. Буду признателен за любую помощь.

Я упростил проблему до этого примера: https://github.com/Jtfinlay/arcgis-import-problems

При запуске yarn test я обнаружил следующую ошибку:

 $ cross-env TS_NODE_PROJECT="tsconfig.test.json" mocha --require ts-node/register 'test/**/*.test.ts'

D:reposrepronode_modules@arcgiscoregeometrygeometryEngine.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:namp;amp;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 Object.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 Module._compile (internal/modules/cjs/loader.js:955:30)
    at Module.m._compile (D:reposrepronode_modulests-nodesrcindex.ts:1365:23)
    at Module._extensions..js (internal/modules/cjs/loader.js:991:10)
    at Object.require.extensions.<computed> [as .ts] (D:reposrepronode_modulests-nodesrcindex.ts:1368:12)
    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 Module._compile (internal/modules/cjs/loader.js:955:30)
    at Module.m._compile (D:reposrepronode_modulests-nodesrcindex.ts:1365:23)
    at Module._extensions..js (internal/modules/cjs/loader.js:991:10)
    at Object.require.extensions.<computed> [as .ts] (D:reposrepronode_modulests-nodesrcindex.ts:1368:12)
    at Module.load (internal/modules/cjs/loader.js:811:32)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.implementationOfRequireOrImportForUnstableEsm [as requireOrImport] (D:reposrepronode_modulesmochalibnodejsesm-utils.js:101:12)
    at Object.exports.loadFilesAsync (D:reposrepronode_modulesmochalibnodejsesm-utils.js:88:34)
    at Mocha.loadFilesAsync (D:reposrepronode_modulesmochalibmocha.js:461:19)
    at singleRun (D:reposrepronode_modulesmochalibclirun-helpers.js:125:15)
    at exports.runMocha (D:reposrepronode_modulesmochalibclirun-helpers.js:190:10)
    at Object.exports.handler (D:reposrepronode_modulesmochalibclirun.js:374:11)
    at D:reposrepronode_modulesyargsbuildindex.cjs:443:71
 

Вот команда yarn test:

 "test": "cross-env TS_NODE_PROJECT="tsconfig.test.json" mocha --require ts-node/register 'test/**/*.test.ts'"
 

И вот мой tsconfig.test.json ,

 {
    "compilerOptions": {
      "module": "commonjs",
      "target": "es2015",
      "lib": ["es2017"],
      "declaration": false,
      "noImplicitAny": false,
      "removeComments": true,
      "inlineSourceMap": true,
      "moduleResolution": "node"
    },
    "include": ["scripts/**/*.ts", "src/**/*.ts", "node_modules/lodash-es/**/*.js"]
  }