Я использую Node v14.5.0. Я использую ts-node-dev
в среде разработки
Попытка скомпилировать JS всегда выдает ошибку.
Сначала я пробовал с этим tsconfig
:
"target": "es5",
"module": "commonjs"
"outDir": "./dist",
"rootDir": "./src"
Но когда я запускаю tsc
и node dist/app.js
, я получаю следующую ошибку:
UnhandledPromiseRejectionWarning: D:\Dev\src\entity\BaseEntity.ts:1
import {
^^^^^^
SyntaxError: Cannot use import statement outside a module
Проведя небольшое исследование, я обнаружил, что я должен сказать Node использовать модули, добавляя "type": "module"
к package.json
. После этого ошибка изменилась на:
Object.defineProperty(exports, "__esModule", { value: true });
^
ReferenceError: exports is not defined
Выполняя дополнительные исследования, я пробовал несколько разных вещей, например:
Изменение tsconfig
с "module": "commonjs"
на "module": "es2015"
Это также приводит к невозможности запуска ts-node-dev
. Выдает ошибку: Cannot use import statement outside a module
.
Добавление к tsconfig
"moduleResolution": "node"
С этим и модулем "es2015" tsconfig мне требуется во всех моих машинописный импорт для использования расширения. JS. Пример: import { foo } from '../bar.js
, иначе выдает ошибку, например: Error [ERR_MODULE_NOT_FOUND]: Cannot find module D:/...
. И, конечно же, не позволяет мне использовать ts-node-dev
, поскольку вызывает ошибку, описанную выше.