gpt4 book ai didi

javascript - Typescript 无法正确编译为 commonjs/es2015

转载 作者:行者123 更新时间:2023-12-05 06:14:37 25 4
gpt4 key购买 nike

我正在运行 Node v14.5.0。我在开发环境中使用 ts-node-dev

尝试编译成 JS 总是报错。

起初,我尝试使用这个 tsconfig:

"target": "es5",
"module": "commonjs"
"outDir": "./dist",
"rootDir": "./src"

但是当我运行 tscnode dist/app.js 时,我得到以下错误:

UnhandledPromiseRejectionWarning: D:\Dev\src\entity\BaseEntity.ts:1
import {
^^^^^^

SyntaxError: Cannot use import statement outside a module

经过一些研究,我发现我应该告诉 Node 使用 Modules 添加 "type": "module"package.json。之后错误变为:

Object.defineProperty(exports, "__esModule", { value: true });
^

ReferenceError: exports is not defined

为了进一步研究,我尝试了几种不同的方法,例如:

  • tsconfig"module": "commonjs" 更改为 "module": "es2015"

    这也导致无法运行ts-node-dev。它抛出错误:不能在模块外使用 import 语句

  • 添加到 tsconfig "moduleResolution": "node"

    有了这个和“es2015”模块 tsconfig,我被要求在我所有的 typescript 导入中使用 .JS 扩展名。示例:import { foo } from '../bar.js,否则会抛出如下错误:Error [ERR_MODULE_NOT_FOUND]: Cannot find module D:/...。当然,阻止我使用 ts-node-dev 作为抛出上述错误。

最佳答案

问题出在 ormconfig.js 中,我的实体路径指向 .ts 文件而不是 .js

解决方法:

entities: ['dist/entity/*.js'],
migrations: ['dist/migration/**/*.js']

关于javascript - Typescript 无法正确编译为 commonjs/es2015,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62809723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com