@kr_ilya

Как исправить эту ошибку nodejs, typescript?

По порядку:
1. Скачал zip архивом данный репозиторий.
2. Разархивировал, закинул файлы на сервер, в директории /root/autoinst выполнил npm i.
3. Находясь в директории /root/autoinst выполнил node examples/upload-story.example.ts
Получил ошибку:
(node:28667) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
/root/autoinst/examples/upload-story.example.ts:1
import { IgApiClient } from '../src';
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at wrapSafe (internal/modules/cjs/loader.js:1063:16)
    at Module._compile (internal/modules/cjs/loader.js:1111:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1167:10)
    at Module.load (internal/modules/cjs/loader.js:996:32)
    at Function.Module._load (internal/modules/cjs/loader.js:896:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
    at internal/main/run_main_module.js:17:47

4. Добавил в корневой packege.json "type": "module"
5. Повторил команду из п.3, получил ошибку
(node:28759) ExperimentalWarning: The ESM module loader is experimental.
internal/modules/run_main.js:54
    internalBinding('errors').triggerUncaughtException(
                              ^

TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /root/autoinst/examples/upload-story.example.ts
    at Loader.defaultGetFormat [as _getFormat] (internal/modules/esm/get_format.js:65:15)
    at Loader.getFormat (internal/modules/esm/loader.js:110:42)
    at Loader.getModuleJob (internal/modules/esm/loader.js:241:31)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
    at async Loader.import (internal/modules/esm/loader.js:175:17) {
  code: 'ERR_UNKNOWN_FILE_EXTENSION'
}


Версия ноды v13.12.0
Погуглил, рабочего решения не нашел. Что можно сделать?
  • Вопрос задан
  • 6689 просмотров
Решения вопроса 2
bingo347
@bingo347 Куратор тега Node.js
Crazy on performance...
Нода не умеет typescript

Вариант 1: скомпилировать
устанавливаем:npm i typescriptи запускаем$(npm bin)/tsc examplesестественно нужен tsconfig.json
Вариант 2: ts-node
устанавливаем:npm i typescript ts-nodeи запускаем
$(npm bin)/ts-node examples/upload-story.example.ts
Ответ написан
Комментировать
@kr_ilya Автор вопроса
Решил. Заменил в команде запуска node на ts-node
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы