Синтаксическая ошибка: Неожиданный токен «экспорт» (d3zoom)

#angular #typescript

Вопрос:

Я вижу ошибки при выполнении тестов в Angular:

   ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){export {default as zoom} from "./zoom.js";
                                                                                             ^^^^^^

    SyntaxError: Unexpected token 'export'

      16 | import { scaleLinear } from "d3-scale";
      17 | import { event, mouse, select, Selection } from "d3-selection";
    > 18 | import { zoom, ZoomBehavior, zoomIdentity, ZoomTransform } from "d3-zoom";
         | ^
      19 | import { Observable, Subscription } from "rxjs";
      20 | import { map, tap } from "rxjs/operators";
 

Я попытался следовать предложениям в другом сообщении SO, в котором предлагалось использовать другую версию node (был рекомендован node v. 12, поэтому я понизил рейтинг с 14 до 12), и это не сработало.

Есть какие-нибудь предложения?

Ответ №1:

Шутка или какой тестовый сайт у вас есть, он говорит на javascript/commonjs, а не на машинописном/esmodules. Я имею в виду, что вам нужно использовать require, если вы хотите написать для них тесты с помощью typescript install ts-node npm i -D ts-node , но я думаю, что пакет ts-jest уже существует