我正在运行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
引发上述错误。
答案 0 :(得分:1)
问题出在ormconfig.js
,其中我的实体路径指向.ts
文件而不是.js
。
解决方案:
entities: ['dist/entity/*.js'],
migrations: ['dist/migration/**/*.js']