TS-Jest не разрешает пути tsconfig

Я уже добавил эти пути в tsconfig.json:

{
    "compilerOptions": {
        "lib": ["ESNext"],
        "moduleResolution": "node",
        "noUnusedLocals": true,
        "noUnusedParameters": true,
        "removeComments": true,
        "sourceMap": true,
        "target": "ES2020",
        "outDir": "lib",
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "baseUrl": ".",
        "paths": {
            "@lambdas/*": ["src/lambdas/*"],
            "@services/*": ["src/services/*"],
            "@types/*": ["src/@types/*"],
            "@configs/*": ["src/configs/*"],
            "@database/*": ["src/database/*"],
            "@entities/*": ["src/entities/*"],
            "@validations/*": ["src/validations/*"],
            "#serverless/*": ["serverless/*"]
        }
    },
    "include": ["src/**/*.ts", "serverless.ts"],
    "exclude": [
        "node_modules/**/*",
        ".serverless/**/*",
        ".webpack/**/*",
        "_warmup/**/*",
        ".vscode/**/*"
    ]
}

И в jest.config.js я добавил это:

const { pathsToModuleNameMapper } = require('ts-jest/utils');
// eslint-disable-next-line import/extensions
const { compilerOptions } = require('./tsconfig.json');

// module.exports = { ...
moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths),
// ...

Но у меня все еще такое же поведение: intellisense даже не загружает возможные пользовательские пути, подобные перечисленным выше, как вы можете видеть на изображении ниже: test file

Это происходит с этой структурой папок:

folder struct

Добавьте *.test.ts в раздел tsconfig.json include.

hoangdv 25.04.2022 03:16

@hoangdv, но я не хочу, чтобы тесты переносились при создании рабочей сборки.

João Casarin 25.04.2022 05:28

Я добавил свой полный tsconfig.json, если это поможет.

João Casarin 25.04.2022 05:32
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Создание собственной системы электронной коммерции на базе Keystone.js - настройка среды и базовые модели
Создание собственной системы электронной коммерции на базе Keystone.js - настройка среды и базовые модели
Прошлая статья была первой из цикла статей о создании системы электронной коммерции с использованием Keystone.js, и она была посвящена главным образом...
0
3
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете создать новый файл tsconfig только для сборки. пример: скопируйте текущий tsconfig.json в tsconfig.build.json

Не забудьте обновить параметры esbuild в serverless.ts

...
custom: {
    esbuild: {
        tsconfig: 'tsconfig.build.ts'
    }
}
...

затем создайте новый tsconfig.json для IDE (vscode) и протестируйте:

{
  "extends": "./tsconfig.paths.json", // extend setting from build config
 
  "include": [
    "src/**/*.ts",
    "tests/**/*.ts" // include tests directory
  ],
  "exclude": [
    "node_modules/**/*",
    ".serverless/**/*",
    ".webpack/**/*",
    "_warmup/**/*",
    ".vscode/**/*"
  ]
}

Вау, на самом деле это работает, как и ожидалось :D спасибо, друг мой!

João Casarin 25.04.2022 18:48

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

Похожие вопросы

Передача vscode во внешние функции
Firebase: Почему мой код использует только первый документ в моей коллекции?
Реагировать на ошибку машинописного текста - элемент неявно имеет любой тип, потому что выражение строки типа не может использоваться для индексирования типа {}
Как получить доступ к вложенным необязательным индексам из интерфейса
Почему машинописный текст не может контекстуально вывести эти типы промежуточного программного обеспечения
Передать конструктор класса как функцию в другом классе
React & clsx: добавьте имя класса, если текущий элемент в сопоставленном массиве является первым из нескольких элементов
Свойство «MathFun» отсутствует в типе «(x?: число, y?: число) => число», но требуется в типе «Func».
Получение строки типа не может быть назначено строке типа для компонента TS в сборнике рассказов
Как ввести useState для файлов?