js需要导入.ts文件而不是.js

时间:2019-02-13 16:15:14

标签: typescript import

我有一个index.ts和一个User.ts文件

index.ts文件导入用户:

import User from './User'

然后我使用tsc将ts文件转换为js文件,然后运行索引文件:

tsc index.ts 节点index.js

不幸的是,这给了我这个错误:

(node:1672) UnhandledPromiseRejectionWarning: C:\temp\dev\models\User.ts:1
(function (exports, require, module, __filename, __dirname) { import {Column, Entity, JoinColumn, ManyToOne, OneToMany, PrimaryGeneratedColumn} from "typeorm"
                                                              ^^^^^^

SyntaxError: Unexpected token import

因此,看来我的导入语句import User from './User'已被转换为User = require('./User'),并且仍在导入User.ts文件而不是User.js

2 个答案:

答案 0 :(得分:0)

TypeScript编译器不会自动编译您导入的内容-如果您要这样做,最好使用Webpack或Parcel之类的东西。为了使项目中的所有文件都能正确编译和导入,您必须明确要求tsc这样做。

有两种方法可以做到这一点:

  • 将多个参数传递给tsc-例如tsc index.ts User.ts
  • 如果目录中有.tsconfig文件,则只需运行tsc即可编译所有.ts文件。请注意,如果您的files中有一个.tsconfig列表,它将仅编译这些文件。

答案 1 :(得分:0)

我认为问题在于您如何配置ormconfig.json 它应该看起来像这样:

{
...
"entities": [
// change "src/entity/*.ts to

"dist/entity/*.js"
],
...
}