Почему TS криво компилит код?
Приветствую, написал простой код с динамическим импортом, который подтягивает конфиги в зависимости от .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 и вот это вот все)
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
TS (TypeScript) может "криво" компилировать код по разным причинам, и важно разобраться в них, чтобы решить проблему.
1. Ошибки в синтаксисе: Первым делом стоит проверить ваш код на наличие ошибок в синтаксисе. Например, отсутствие точки с запятой в конце строки, неправильное использование скобок, кавычек и т.д. Такие ошибки могут привести к неправильной работе компилятора.
2. Неправильное использование типов данных: TypeScript строго типизированный язык программирования, поэтому важно правильно определить типы данных для переменных, функций и объектов. Если типы данных указаны неправильно или не указаны вовсе, это может вызвать проблемы при компиляции.
3. Не совместимые версии TypeScript: Убедитесь, что используемая вами версия TypeScript совместима с вашим проектом и используемыми библиотеками. Иногда обновление TypeScript может привести к несовместимости с некоторыми библиотеками или фреймворками.
4. Проблемы с конфигурационным файлом tsconfig.json: В этом файле указываются настройки компилятора TypeScript, такие как пути к файлам, опции компиляции и т.д. Проверьте этот файл на наличие ошибок или несоответствий.
5. Конфликты между типами данных: Иногда TypeScript может не справиться с разрешением конфликтов между разными типами данных, особенно при использовании сложных структур данных. В этом случае стоит пересмотреть ваш код и убедиться, что типы данных корректно соответствуют друг другу.
6. Проблемы с установкой и настройкой TypeScript: Если вы используете TypeScript впервые или только начали работать с ним, возможно, у вас возникли проблемы с установкой и настройкой. Убедитесь, что вы правильно установили TypeScript и настроили его окружение.
В целом, чтобы решить проблему с "кривой" компиляцией кода в TypeScript, важно внимательно изучить ваш код, проверить настройки компилятора и убедиться, что все используемые библиотеки и фреймворки совместимы с текущей версией TypeScript.