Импорт ES в модули JavaScript, используемые из JestJavascript

Форум по Javascript
Ответить
Anonymous
 Импорт ES в модули JavaScript, используемые из Jest

Сообщение Anonymous »

Код: Выделить всё

npx jest test/test.ts
выдает:

Код: Выделить всё

...
XXX/src/declarations/package_manager/index.js:1
({"Object.":function(module,exports,require,__dirname,__filename,jest){import { Actor, HttpAgent } from "@dfinity/agent";
^^^^^^

SyntaxError: Cannot use import statement outside a module
...
Обратите внимание, что src/declarations/package_manager/index.js — это сгенерированный JS-файл, использующий импорт ES (и я не могу это изменить). Этот файл косвенно (через другой модуль) импортирован из test/test.ts.

Код: Выделить всё

jest.config.js
:

Код: Выделить всё

/** @type {import('ts-jest').JestConfigWithTsJest} **/
module.exports = {
preset: 'ts-jest/presets/default-esm', // Use this preset to handle ES modules
testEnvironment: "node",
transform: {
"^.+.tsx?$": ["ts-jest",{useESM: true}],
},
extensionsToTreatAsEsm: ['.ts'],
// moduleNameMapper: {
//   // If you're using non-ESM packages, you might need to map them correctly
//   '^(\\.{1,2}/.*)\\.js$': '$1',
// },
};

Код: Выделить всё

tsconfig.json
:

Код: Выделить всё

{
"compilerOptions": {
"target": "es6",        /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
"lib": ["ES2018", "DOM"],  /* Specify library files to be included in the compilation. */
"allowJs": true,           /* Allow javascript files to be compiled. */
"jsx": "react",            /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
"moduleResolution": "nodenext",
"module": "nodenext",
"skipLibCheck": true,
},
"include": ["src/**/*.ts", "./src/custom.d.ts"],
}
Как заставить мои тесты .ts использовать файлы .js с импортом внутри этих .js без ошибок?< /п>

Подробнее здесь: https://stackoverflow.com/questions/793 ... -from-jest
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»