Jest - Невозможно использовать оператор импорта вне модуля - с использованием Rescript

Я пытаюсь запустить модульные тесты в проекте React, созданном с использованием сценариев реакции, в которые я добавил поддержку ReScript.

Однако при запуске тестов я обнаружил ошибку в транспилированном коде javascript.

Подробная информация об ошибке:

      /Users/massimilianodacunzo/Projects/Elixir/test-project/apps/phoenix_react_web/assets/node_modules/bs-platform/lib/es6/array.js:3
import * as Curry from "./curry.js";
^^^^^^

SyntaxError: Cannot use import statement outside a module

  1 |
  2 |
> 3 | import * as $$Array from "../../../node_modules/bs-platform/lib/es6/array.js";
    | ^
  4 | import * as React from "react";
  5 |
  6 | function TestComponent(Props) {

  at Runtime.createScriptFromCode (node_modules/jest-runtime/build/index.js:1350:14)
  at Object.<anonymous> (src/components/users/TestComponent.bs.js:3:1)

Компоненты, которые я пытаюсь протестировать:

App.res

      %%raw(`
import logo from './logo.svg';
import './App.css';
`)

@react.component
let make = () => {
    <div className="App">
        <TestComponent elements={["1", "2", "3"]} />
    </div>
}

TempComponent.res

      @react.component
let make = (
    ~elements: array<string>
) => {
    <ul>
        {
            React.array(
                elements 
                |> Array.map(e => 
                    <li key={e}>{React.string(e)}</li>)
            )
        }
    </ul>
}

Созданный TestComponent.bs.js

      import * as $$Array from "../../../node_modules/bs-platform/lib/es6/array.js";
import * as React from "react";

function TestComponent(Props) {
  var elements = Props.elements;
  return React.createElement("ul", undefined, $$Array.map((function (e) {
                    return React.createElement("li", {
                                key: e
                              }, e);
                  }), elements));
}

var make = TestComponent;

export {
  make ,
  
}
/* react Not a pure module */

Могу ли я добавить дополнительную конфигурацию в react-scripts test сценарий?

1 ответ

Следуя комментарию , я проследил за проблемой git и обнаружил, что конфигурация в моем файле bsconfig.json указывает модуль package-specs как es6 . Ошибка теста не появлялась, если я меняю конфигурацию на commonjs .

      {
    ...
    "package-specs": {
      "module": "commonjs",
      "in-source": true
    }
    ...
}

Еще раз спасибо user7943564 за то, что указал мне правильное направление.

Другие вопросы по тегам