Skip to content

Приложение для терминала - #2

Merged
keksobot merged 4 commits into
htmlacademy-nodejs-api:masterfrom
MikhailBespyatov:module1-task2
Sep 8, 2025
Merged

keksobot merged 4 commits into
htmlacademy-nodejs-api:masterfrom
MikhailBespyatov:module1-task2

Conversation

@MikhailBespyatov

@MikhailBespyatov MikhailBespyatov commented Sep 7, 2025 •

Copy link
Copy Markdown

@keksobot keksobot changed the title module1-task2 Приложение для терминала Sep 7, 2025
Comment thread package.json Outdated
@@ -30,5 +30,8 @@
"engines": {
"node": "^18.0.0",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Предлагаю в проекте использовать версию 22 (LTS которая)
Но с ней не работают штатно через ts-node запуск скриптов. Падает так:

TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /path/to/project/1501539-six-cities-2/src/main.cli.ts

Предлагаю такое решение: написать обертку и его импортировать, а в этой обертке уже подключается ts-node. Ниже код патча, который можешь применить у себя в редакторе

Subject: [PATCH] ts loader
---
Index: src/ts-loader.js
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/ts-loader.js b/src/ts-loader.js
new file mode 100644
--- /dev/null	(date 1749288105438)
+++ b/src/ts-loader.js	(date 1749288105438)
@@ -0,0 +1,5 @@
+import {register} from 'node:module';
+import {pathToFileURL} from 'node:url';
+
+// Регистрируем ts-node с поддержкой ESM
+register('ts-node/esm', pathToFileURL('./'));

запускать так node --import ./src/ts-loader.js /path/to.ts

Comment thread src/cli/commands/command.interface.ts Outdated
@@ -0,0 +1,4 @@
export interface Command {
getName(): string;
execute(...parameters: string[]): void;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Сделать возвращаемый тип Promise<void> тк в будущем там будут долгие операции, которые нужно ждать

@keksobot
keksobot merged commit d65f244 into htmlacademy-nodejs-api:master Sep 8, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants