Почему TS криво компилит код?

Ссылка скопирована
1 ответ

Приветствую, написал простой код с динамическим импортом, который подтягивает конфиги в зависимости от .env

const configPath = convertFilePath(`../../config/env.${process.env.CONFIG}.config`)   const config = await import(     configPath   );

const configPath = convertFilePath(`../../config/env.${process.env.CONFIG}.config`) const config = await import( configPath );

Ничего нетривиального, после чего, вылетает следующая ошибка:

require() of ES Module /Users/vlad/server/config/env.prod.config.js from /Users/vlad/server/dist/test/index.js not supported.

require() of ES Module /Users/vlad/server/config/env.prod.config.js from /Users/vlad/server/dist/test/index.js not supported.

Скомпилил он эту строчку в вот это:

const configPath = (0, utils_1.convertFilePath)(`../../config/env.${process.env.CONFIG}.config`);     const config = await Promise.resolve(`${configPath}`).then(s => require(s));

const configPath = (0, utils_1.convertFilePath)(`../../config/env.${process.env.CONFIG}.config`); const config = await Promise.resolve(`${configPath}`).then(s => require(s));

tsconfig выглядит так:

{   "compilerOptions": {     "module": "commonjs",     "declaration": true,     "removeComments": true,     "emitDecoratorMetadata": true,     "experimentalDecorators": true,     "allowSyntheticDefaultImports": true,     "target": "ES2021",     "sourceMap": true,     "outDir": "./dist",     "baseUrl": "./",     "incremental": true,     "skipLibCheck": true,     "strictNullChecks": false,     "noImplicitAny": false,     "strictBindCallApply": false,     "forceConsistentCasingInFileNames": false,     "noFallthroughCasesInSwitch": false   } }

{ "compilerOptions": { "module": "commonjs", "declaration": true, "removeComments": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "allowSyntheticDefaultImports": true, "target": "ES2021", "sourceMap": true, "outDir": "./dist", "baseUrl": "./", "incremental": true, "skipLibCheck": true, "strictNullChecks": false, "noImplicitAny": false, "strictBindCallApply": false, "forceConsistentCasingInFileNames": false, "noFallthroughCasesInSwitch": false } }

Вариант с тем, что он тянет не тот конфиг отпадает, пробовал скомпилить через tsc -p ./tsconfig.json и через билдовый конфиг тоже.

Проблема происходит только с динамическими импортами, с дефолтными, проект нормально заводиться

Как эту проблему можно решить?

Дополнительно:

"module": "commonjs",

тут явно указано компилировать в commonjs (require, module.exports и вот это вот все)

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Ирина WP Ответ

TS (TypeScript) может "криво" компилировать код по разным причинам, и важно разобраться в них, чтобы решить проблему.

1. Ошибки в синтаксисе: Первым делом стоит проверить ваш код на наличие ошибок в синтаксисе. Например, отсутствие точки с запятой в конце строки, неправильное использование скобок, кавычек и т.д. Такие ошибки могут привести к неправильной работе компилятора.

2. Неправильное использование типов данных: TypeScript строго типизированный язык программирования, поэтому важно правильно определить типы данных для переменных, функций и объектов. Если типы данных указаны неправильно или не указаны вовсе, это может вызвать проблемы при компиляции.

3. Не совместимые версии TypeScript: Убедитесь, что используемая вами версия TypeScript совместима с вашим проектом и используемыми библиотеками. Иногда обновление TypeScript может привести к несовместимости с некоторыми библиотеками или фреймворками.

4. Проблемы с конфигурационным файлом tsconfig.json: В этом файле указываются настройки компилятора TypeScript, такие как пути к файлам, опции компиляции и т.д. Проверьте этот файл на наличие ошибок или несоответствий.

5. Конфликты между типами данных: Иногда TypeScript может не справиться с разрешением конфликтов между разными типами данных, особенно при использовании сложных структур данных. В этом случае стоит пересмотреть ваш код и убедиться, что типы данных корректно соответствуют друг другу.

6. Проблемы с установкой и настройкой TypeScript: Если вы используете TypeScript впервые или только начали работать с ним, возможно, у вас возникли проблемы с установкой и настройкой. Убедитесь, что вы правильно установили TypeScript и настроили его окружение.

В целом, чтобы решить проблему с "кривой" компиляцией кода в TypeScript, важно внимательно изучить ваш код, проверить настройки компилятора и убедиться, что все используемые библиотеки и фреймворки совместимы с текущей версией TypeScript.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно